批量更新mongodb中的数据

时间:2016-12-29 06:57:40

标签: node.js mongodb mongoose

我的数据存储在我的数据库中。用例是用户可以选择日期并批量更新年龄或名称。查询怎么样?

[
    {
        date:'1-1-2016',
        users:[
            {
                'name':'james',
                'age':18
            },
            {
                'name':'alice',
                'age':20
            }
        ]
    },
    {
        date:'2-1-2016',
        users:[
            {
                'name':'james',
                'age':18
            },
            {
                'name':'alice',
                'age':20
            },
            {
                'name':'xiaomi',
                'age':29
            }
        ]
    }
]

我用过这个Users.update({date:'1-1-2016','user.name':'james'},{'$set':'users.$.age':5}})  但它不是批量更新,它只更新单个文档。

2 个答案:

答案 0 :(得分:1)

您可以在mongodb update

中设置多个真实选项

离。如果要更新多个文档,请使用

Users.update({date:'1-1-2016','user.name':'james'},{'$ set':'users。$。age':5}},{multi:真})

但是如果有许多日期可以匹配使用

Users.update({date:{$ in:['1-1-2016','1-2-2016']},'user.name':'james'},{'$ set': 'users。$。age':5}},{multi:true})

答案 1 :(得分:-1)

您可以使用updateMany。它是批量更新的特殊功能。请注意updatedeprecated