3

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

这可能吗?

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

代替:

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

为什么我需要这个?

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

4

1 回答 1

2

是的,这在 MongoDB 中是可能的。您可以根据要求编写嵌套查询。即使在我的应用程序中,我也创建了嵌套的 MongoDb 查询。如果您熟悉 SQL 语法,请将其与sql 语法中的in进行比较:

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

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

于 2010-12-21T10:27:53.377 回答