MONGODB - 将集合中的字段添加到Item数组中的字段

时间:2013-09-30 03:19:47

标签: arrays mongodb collections field

假设我有以下原型的文档。

{
  cust_id: "abc123",
  ord_date: ISODate("2012-11-02T17:04:11.102Z"),
  status: 'A',
  price: 50,
  items: [
       { sku: "xxx", qty: 25, price: 1 },
       { sku: "yyy", qty: 25, price: 1 } 
  ]
}

我的要求是获得SKU“XXX”的总价格,即50 * 25(价格时间数量)。如何在MONGODB中实现此查询的结果?

2 个答案:

答案 0 :(得分:0)

db.YOUR_COLLECTION.aggregate({ 
    $match: {
        items.sku: "xxx"
    },
    $project: {
        "product": {$multiply: ["$items.qty","$items.price"]},
        _id: 0
    }
});

答案 1 :(得分:0)

我能够通过将查询分成两个块来实现此解决方案,如下所示。

var pipeline1 = [

{

{

“$ unwind”:“$ items”

},

$match: {
    items.sku: "xxx"
},
$project: {
    "product":

{

$ multiply:[“$ items.qty”,“$ items.price”]

},         _id:0     } }];

R = db.tb.aggregate(管道);