使用regex MongoDB C#驱动程序进行过滤

本文关键字:过滤 驱动程序 regex MongoDB 使用 | 更新日期: 2023-09-27 18:26:17

我正在尝试将originalEmail的字段与以下邮件地址匹配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;
}

这对我不起作用。为什么?

使用regex MongoDB C#驱动程序进行过滤

您可以使用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();
}