在所有mongodb子文档中切换一个布尔字段

时间:2016-09-07 22:34:52

标签: node.js mongodb mongoose

我有一个带有一些子文档的文档,其中每个子文档都有一个布尔字段。

{
    title: String
    children: [{
        exit: Boolean,
        doc: String
    }]
}

是否有一种简单的方法可以进行一次db调用来切换所有子文档的所有文档的所有布尔值?

据我所知,我可以做..

Model.find()
.then(function(items) {
    // manipulate item.children and toggle the exit field.
    // and save them one by one
})

但是有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

如果你想更新一个文件中的多个数组,最好先查询一次,把它带到服务器,改变一切然后再保存以替换单个旧文件

Model.find()
.then(function(items) {
    // manipulate item.children and toggle the exit field.
    var newChildren = items.childrens.map(x => x.exit = false)

    //replace the old children 
    items.children = newChildren

    items.save(); // no this is not saving one by one. this command save this item once, including all of it's children
})