簡體   English   中英

如何在MongoDB上的文檔中將數組的元素分配給新鍵

[英]How can I assign an element of the array to a new key in the document on MongoDB

我對MongoDB有問題。 我有很多這樣的文檔集合:

{
key1:[   
        {el:"EL1"},
        {el:"EL2"} 
     ]
}

我想更新集合col中的所有文檔,添加一個新的key key2 ,其中值為key1.0 特別是通用輸出的文檔將是:

{
key1:[   
        {el:"EL1"},
        {el:"EL2"} 
     ],
key2: {el:"EL1"}   
}

我怎樣才能做到這一點? 謝謝

您可以將$ addFields$ let一起使用,以基於key1.0值生成新字段,然后可以運行$ out以聚合的結果更新現有集合:

db.col.aggregate([
    {
        $addFields: {
            "key2.el": { 
                $let: {
                    vars: { fst: { $arrayElemAt: [ "$key1", 0 ] } },
                    in: "$$fst.el"
                }
            }
        }
    },
    { $out: "col" }
])

暫無
暫無

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

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