用正则表达式mongodb c#驱动程序过滤

Use*_*898 5 c# filter mongodb

嗨,我正在尝试将原始电子邮件的字段与liron@gmail.com等邮件进行匹配,但无论是否区分大小写,还可以找到LirOn@gmail.com字段.

public ObjectId? GetEntityIdByOriginalEmail(string originalEmail)
{
    FilterDefinition<Entity> filter = "{ x : { $regex : /" + originalEmail + "//i } }";
    var entity = _entitiesStorage.GetSingleOrDefault(filter);

    if (entity == null)
        return null;

    return entity._id;
}
Run Code Online (Sandbox Code Playgroud)

这对我没有用.为什么?

谢谢

rno*_*nko 16

你可以用Builders.Filter.Regex.

public async Task<Entity> GetEntityIdByOriginalEmail(string originalEmail)
{
    var collection = GetCollection();
    var filter = Builders<Entity>.Filter.Regex("x", new BsonRegularExpression(originalEmail, "i"));
    return await collection.Find(filter).FirstOrDefaultAsync();
}
Run Code Online (Sandbox Code Playgroud)

  • 例如,如何过滤所有字段而不仅仅是“x”? (2认同)