我在各种集合中有数百万个文档。
我的应用程序必须定期向MongoDB更新一些增量数据。我该如何做到这一点?
对于增量数据中的每一条记录,如果该记录存在,则必须使用新值对其进行更新,否则必须插入该记录。
{
_id: 'some ID',
lifnr: 12345,
bukrs: 3455,
amount: 500
},
{
_id: 'some ID',
lifnr: 12346,
bukrs: 3456,
amount: 5200
}
假设以上是我的数据,lifnr和bukrs作为具有唯一约束的复合索引。任何{lifnr&bukrs}值与任何现有记录相同的新记录都应该替换旧的金额。如果它是唯一的{lifnr&bukrs}的新记录,那么它必须插入/附加它。
引导我找到方法。感谢
根据您的编辑,它并不是真正的递增数据。这只是upstart设置为true的更新。每次都要更新。查询将是,
db.collection.update(
{ lifnr: 12345, bukrs: 3455},
{$set: {amount: 5600}}
{upsert: true}
)
如果linfr&找到了布克尔组合。如果找不到,它将插入一个新文档。