mongoDB高级查询问题
发布于 1年前 作者 javaxu 1061 次浏览

我现在在项目中遇到一种情况,需要一种查询方式解决,在关系型数据库中我们采用sql是这样的形式: select * from table where (rule1 or rule2 or rule3) and (rule4 or rule5 or rule6); 回到mongoDB,我要实现的功能就是,有两个条件数组,每个数组里面的每一条数据规则是以 ‘或’/or 的关系, 而两个数组之间是 ‘与’/and 的关系,那么方式是这样的: db.table.find({ $or: [rule1,rule2,rule3], $or: [rule4,rule5,rule6]})
但是现在问题是: ‘$or’是一个key,肯定不能用两次,所以上面的查询方式是行不通的,有什么方法实现呢? 期待大家的回复,谢谢!!!

2 回复

试下$and:

.find({
  $and:[ { $or: [rule1,...]}, {$or: [rule4,...]} ]
})

正解,已解决,谢谢

回到顶部