node.js - MongoDB更新多重嵌套数组内的对象

标签 node.js mongodb mongoose

我正在使用 NodeJSMongoDB 制作一个项目。 我也在使用 Mongoose 。 我有以下收藏:

array1:[
    {
        field1:{type:String,default:null}
        array2:[
            {
                id:{type:String,default:null},
                field1:{type:String,default:null},
                field:{type:String,default:null}
            }
        ]
    }
]

所以我想使用“id”更新“array2”内的“field1”和“field2”,但我无法通过update查询来实现这一点。您能否建议我如何使用 update 查询来实现此目的?

目前我使用的是更新它

document.save(function(error,response){});

提前致谢。

最佳答案

我认为最好的方法是将 array2 设置为集合的数组,并为 array2 的该对象创建一个新集合。这样做并拥有 id,您可以使用 Collection.findById 轻松找到它,并且它还会获得更好的性能,因为在找到所需的对象之前,您不需要为 array1 和 array2 的所有值读取和分配内存。

关于node.js - MongoDB更新多重嵌套数组内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31858697/

相关文章:

javascript - Node.JS 事件错误

node.js - CentOS 6 安装node-memwatch,node-gyp rebuild 报错

node.js - Promise.all().then() - then() 在 all() 完成之前执行

javascript - 如何将另一个函数的值存储到 var

mongodb - 如何在我的应用程序中显示 jupyter notebook 或 apache zeppelin?

javascript - 为什么只写一个字段而不用它做任何事情?

mongodb - 在MongoDB文档子文档数组中插入并返回子文档的ID

node.js - 在单个端口后面运行多个 sails 应用程序

mongodb - Mongo $group 和 $project

mongodb - 当删除子文档时,如何在 Mongoose 中删除其父文档中的引用?