基于Objects属性在mongodb中有条件$ addToSet

时间:2018-06-09 06:31:03

标签: javascript node.js mongodb mongoose

在mongodb文档中(使用mongoose),如果数据库中已存在history.data值,我希望能够更新history.time对象,否则我希望$ addToSet正常工作并将新对象添加到历史数组。 做这个的最好方式是什么? 感谢

MongoDB文档

siteName: 'test',
history: [{
    time: '01/01/01 10:10am',
    data: {
        flow: 10
    }
}]

当前脚本

x.findOneAndUpdate(
    {siteName:'test'},
    {
        $addToSet: {
            history: {
                time: '01/01/01 10:10am',
                data: {
                    level: 18
                }
            }
        }
    }
)

通缉结果

siteName: 'test',
history: [{
    time: '01/01/01 10:10am',
    data: {
        flow: 10,
        level: 18
    }
}]

实际结果

siteName: 'test',
history: [
    {
        time: '01/01/01 10:10am',
        data: {
            flow: 10
        }
    },
    {
        time: '01/01/01 10:10am',
        data: {
            level: 18
        }
    },
]

0 个答案:

没有答案