簡體   English   中英

如何從數組中檢索子文檔字段值

[英]How to retrieve subdocuments field value from array

如何從 mongodb 的以下文檔中獲取購物車中的每個 productID。

{
    "_id": ObjectId("572992d6fc8b7a5c613248f6"),
    "userId": "0001",
    "fname": "Ankur",
    "lname": "Vishnoi",
    "address1": "Palam",
    "city": "New Delhi",
    "state": "Delhi",
    "pin": 110077,
    "cart": [
        {
            "productId": 8,
            "cartQty": 1
        }, 
        {
            "productId": 2,
            "cartQty": 3
        },
   ]
} 

您可以使用 Mongo Aggregate 函數來 $unwind 數組元素。 然后應用 $project 來獲取 productId。

db.coll.aggregate([
    {$unwind : "$cart"},
    {$project : { _id : 0, "productId" : "$cart.productId"}}
])

結果:

{ "productId" : 8 }
{ "productId" : 2 }

除非必須,否則您應該使用$unwind管道運算符對文檔進行反規范化。 最好的方法是使用$map操作符。

db.carts.aggregate([
    { "$project": { 
        "productId": { 
            "$map": { 
                "input": "$cart", 
                "as": "crt", 
                "in": "$$crt.productId" 
            } 
        } 
    }} 
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM