MongoDB C# Driver多字段Eq查询实现方法咨询
MongoDB C# Driver 多字段Eq查询实现方法
你当前的代码存在语法错误,Eq方法的调用格式不对,组合多条件的方式也不正确。以下是正确的实现方式:
方式一:使用And方法组合条件
var filter = filterBuilder.And( filterBuilder.Eq(entity => entity.id, id), filterBuilder.Eq(entity => entity.Name, name) ); return await dbCollection.Find(filter).FirstOrDefaultAsync();
方式二:使用&运算符组合条件
var filter = filterBuilder.Eq(entity => entity.id, id) & filterBuilder.Eq(entity => entity.Name, name); return await dbCollection.Find(filter).FirstOrDefaultAsync();
方式三:链式调用Eq(适用于较新版本驱动)
部分新版本的MongoDB C# Driver支持链式写法,也可以这样实现:
var filter = filterBuilder.Eq(entity => entity.id, id) .Eq(entity => entity.Name, name); return await dbCollection.Find(filter).FirstOrDefaultAsync();
核心注意点:
Eq方法的正确格式是Eq(属性表达式, 匹配值),不能写成entity => entity.id == id这种表达式,这是语法错误。- 多条件组合时,每个条件都需要单独调用
Eq生成对应的过滤条件,再通过And方法或&运算符组合起来。
内容的提问来源于stack exchange,提问作者Mukesh
相关产品推荐
相关产品推荐

