MongoDB:匹配嵌套数组元素的计数

时间:2010-07-02 18:00:10

标签: mongodb

我有一个简单的父子对象存储为MongoDB中的文档。像Order / OrderItems这样简单化的东西。 (Order有一个OrderItem数组)

我想要做的是查询符合一系列标准的订单商品计数。

示例:在订单“999”中找出有多少订单商品的数量为3.

db.collection.find( {OrderId:999, "OrderItems.QuantityOrdered":3} ).count();

此查询的工作方式是返回“1”,因为如果它与数组中的至少一个OrderItem匹配,它将返回匹配的Orders计数。

如何查询“OrderItems”匹配的数量?:

1 个答案:

答案 0 :(得分:3)

使用嵌入式文档无法直接返回此类计数。通过这种临时计数,您最好的办法是返回文档并从应用程序中进行计数。

如果要对大量订单执行此类计数,可以使用map-reduce,它会将结果输出到新集合。