簡體   English   中英

如何在對象內的數組中更新數組?

[英]How do I update an an array, within an object, within an array?

我目前正在使用Node.js MongoDB驅動程序,並且面臨如下結構:

users (database)
users (collection)  
    {           
        name: bob,
        data: [         
            {                   
                name: mydata,
                relations: [ ** I want to addToSet here! ** ]                   
            },              
            {                   
                name: mydata2,
                relations: []                   
            }           
        ]           
    },      
    {           
        name: jeff,
        data: [...same stuff...]            
    }

因此,我有一個數組,該數組位於對象內,也位於數組內,而我的目的是向其中添加一個條目。

我意識到這看起來像是MongoDB不太適合使用的關系事物,但是我試圖容納一些可以上傳的關系數據。 有人碰巧知道這樣做的方法嗎? 不一定在一個查詢中,就根本沒有任何查詢。

如TeTeT的評論中所述,您可以通過將$ positional update運算符與$addToSet結合使用來實現此$addToSet 在外殼中:

db.users.update(
    {name: 'bob', 'data.name': 'mydata'}, 
    {$addToSet: {'data.$.relations': 'add me'}})

$標識查詢條件中匹配的data數組中的元素。

暫無
暫無

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

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