我在各种收藏中有数百万份文件。
我的应用程序必须定期将一些增量数据更新到MongoDB。我如何实现这一目标?
对于增量数据中的每条记录,如果记录存在,则必须使用新值更新,否则必须插入。
{
_id: 'some ID',
lifnr: 12345,
bukrs: 3455,
amount: 500
},
{
_id: 'some ID',
lifnr: 12346,
bukrs: 3456,
amount: 5200
}
假设上面是我的数据,将lifnr和bukrs作为具有唯一约束的复合索引。任何有{lifnr& amp;& bukrs}与现有任何一个相同的值应该替换旧的金额。如果它是一个独特的新记录{lifnr& bukrs},然后它必须插入/追加它。
指导我的方法。谢谢
答案 0 :(得分:1)
根据您的编辑,它不是真正递增的数据。它只是一个更新,upsert设置为true。每次都要更新。查询不好,
db.collection.update(
{ lifnr: 12345, bukrs: 3455},
{$set: {amount: 5600}}
{upsert: true}
)
上面的查询会更新金额,如果linfr&找到bukrs组合。如果没有找到,它将插入一个新文件。