javascript - 如何更新数组、对象内、数组内的数组?

标签 javascript arrays node.js mongodb

我目前正在使用 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 的评论中所述,您可以使用 $ 来做到这一点位置更新运算符与 $addToSet 结合使用。在外壳中:

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

$ 标识 data 数组中与查询条件匹配的元素。

关于javascript - 如何更新数组、对象内、数组内的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518446/

相关文章:

javascript - 这种值设置在 Javascript 中有效吗?

arrays - 如何优化 heroku 上的相交

c# - 将字段放入下一个空数组索引

javascript - Sequelize include 不适用于 hasOne 关系

javascript - 调用nodejs的多个函数

javascript - ajax responseText 包含 php 源代码

javascript - 多个 ng-app 问题

javascript - Angular 9 Chart.js 条形图点击事件

arrays - 将数据 reshape 为 CSV

javascript - JavaScript/Mocha-如何测试是否已等待函数调用