在 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: 3 },value: 2 }
wxslzx 回答:在 MongoDB 中多次查找

您可以使用 $facet 聚合。

使用此运算符,您可以像这样一次运行多个查询:playground

一旦你得到你想要的结果,你就可以用 $project 和 $replaceRoot 根据需要映射文档。 Example

本文链接:https://www.f2er.com/1064.html

大家都在问