MongoDB:如何对另一个查询(嵌套查询)的结果执行查询?

时间:2010-12-21 10:18:53

标签: mongodb mongodb-query

我需要将一组过滤器(查询)应用于集合。默认情况下,MongoDB将AND运算符应用于提交给find函数的所有查询。而不是整个AND我需要按顺序(逐个)应用每个查询。也就是说,我需要运行第一个查询并获取一组文档,将第二个查询运行到第一个查询的结果,依此类推。

这可能吗?

db.list.find({..q1..}).find({..q2..}).find({..q3..});

取代:

db.list.find({..q1..}, {..q2..}, {..q3..});

为什么我需要这个?

Bcoz,第二个查询需要将聚合函数应用于第一个查询的结果,而不是将聚合应用于整个集合。

1 个答案:

答案 0 :(得分:2)

是的,这在MongoDB中是可行的。您可以根据需要编写嵌套查询。甚至在我的应用程序中,我创建了嵌套的MongoDb查询。如果您熟悉SQL语法,那么将它与sql语法中的 进行比较:

     select cname from table where cid in (select .....)

同样,您也可以在不同的集合上创建嵌套的MongoDB查询。