繁体   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