2013-09-30 85 views
0

假設我有以下原型的文檔。MONGODB - 將集合中的字段添加到項目數組中的字段

{ 
    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中實現這個查詢的結果?

回答

0

我能夠通過將查詢分成兩個塊如下實現解決方案。

VAR pipeline1 = [

{

{

「$開卷」: 「$項目」

},

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

{

$多ply:[「$ items.qty」,「$ items.price」]

}, _id:0 } }];

R = db.tb.aggregate(pipeline);

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

這正是我已經試過,這是我得到的錯誤。 「$ multiply只支持數字或日期類型,而不是數組」。還有其他建議嗎? – user2829596

相關問題