假设我们有如下文件:
{ "_id" : 1, "stock_item" : "almonds", warehouse: "B", "instock" : 120 },
{ "_id" : 2, "stock_item" : "pecans", warehouse: "A", "instock" : 80 },
{ "_id" : 3, "stock_item" : "almonds", warehouse: "B", "instock" : 60 },
{ "_id" : 4, "stock_item" : "cookies", warehouse: "B", "instock" : 40 },
{ "_id" : 5, "stock_item" : "cookies", warehouse: "A", "instock" : 80 }
输入是{stock_item: "almonds"}但我们想要:
- 查找所有具有 {stock_item: "almonds"} 的文档
- 检索第 1 部分返回的所有文档的仓库字段
- 返回其仓库字段包含在第 2 部分中的所有文档作为最终结果
所以最终结果将如下所示,因为文档 1 和 3 具有{stock_item: "almonds"}条件并且它们都具有{warehouse: "B"}所以结果我们想要返回所有具有{warehouse: "B “}:
{ "_id" : 1, "stock_item" : "almonds", warehouse: "B", "instock" : 120 },
{ "_id" : 3, "stock_item" : "almonds", warehouse: "B", "instock" : 60 },
{ "_id" : 4, "stock_item" : "cookies", warehouse: "B", "instock" : 40 }
我可以分别使用两个查找查询来做到这一点,但我想知道如何在一个查询中使用 mongodb 聚合来做到这一点?