繁体   English   中英

如何在mongodb中仅更新新数据或更改的值?

[英]How can I update only new data or changed value in mongodb?

Update命令使用提供的Json更新密钥。 我只想更新数据库中不存在的对象和更改的值。 我怎样才能做到这一点?

"data" : [ 
    {
        "_id" : "5bb6253d861d057857ec3ff0",
        "name" : "C"
    }, 
    {
        "_id" : "5bb625fc861d057857ec3ff1",
        "name" : "B"
    }, 
    {
        "_id" : "5bb625fe861d057857ec3ff2",
        "name" : "A"
    }
]

我的数据是这样的。 因此,如果只有2个新对象的json中有一个数组对象,则它应将2个数据与3个数据一起插入。

更新数据库中不存在的对象:

使用upsert :当没有文档符合查询条件时,Upsert将创建一个新文档。 或者,您可以在查询中添加空检查,例如{user_id:null}。 这将允许更新数据库中不存在用户记录的数据。

更新更改的值:

这可以通过维护存储last_updated_at的密钥来实现。 如果last_updated_at值与previous_updatede_at不匹配,则可以修改该记录

您可以实施MongoDB 3.6中引入的变更流,您可以从中接收数据的实时变更。 您只能接收通过“更新”操作过滤的已更改数据。 此外,您还可以通过“插入”操作过滤新插入的数据。 请参阅更改流

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM