我需要将一组过滤器(查询)应用于集合。默认情况下,MongoDB将AND
运算符应用于提交给find
函数的所有查询。而不是整个AND
我需要按顺序(逐个)应用每个查询。也就是说,我需要运行第一个查询并获取一组文档,将第二个查询运行到第一个查询的结果,依此类推。
这可能吗?
db.list.find({..q1..}).find({..q2..}).find({..q3..});
取代:
db.list.find({..q1..}, {..q2..}, {..q3..});
为什么我需要这个?
Bcoz,第二个查询需要将聚合函数应用于第一个查询的结果,而不是将聚合应用于整个集合。
答案 0 :(得分:2)
是的,这在MongoDB中是可行的。您可以根据需要编写嵌套查询。甚至在我的应用程序中,我创建了嵌套的MongoDb查询。如果您熟悉SQL语法,那么将它与sql语法中的 进行比较:
select cname from table where cid in (select .....)
同样,您也可以在不同的集合上创建嵌套的MongoDB查询。