MongoDB中的多个查找



我在MongoDB中有一个集合items,包含以下文档:

{ name: "A", value: 1 },
{ name: "B", value: 2 },
{ name: "C", value: 3 }

现在,我有几个过滤器,我想应用于搜索第一个文档,它匹配过滤器。有没有办法在一个查询中完成,或者我只需要重复db.items.findOne()

我的过滤器是:

{ name: "B" }, // Matches second document.
{ value: 3 }, // Matches third document.
{ $or: [{name: "B"}, {"name": "C"}] } // Matches second document.

结果应该是(包括重复的文件和正确的订单):

{ name: "B", value: 2 },
{ name: "C", value: 3 },
{ name: "B", value: 2 }

您可以使用$facet聚合。

有了这个操作符,你可以同时运行多个查询,如下所示:操场

一旦你得到了你想要的结果,你就可以用$project和$replaceRoot来映射你想要的文档。示例

最新更新