如何在MongoDB中存储增量数据?
How to store Incremental Data in MongoDB?
我在各种 collection 中有数百万份文件。
我的应用程序必须定期更新一些增量数据到 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},那么它必须 insert/append 它。
指导我的方法。谢谢
根据您的编辑,它并不是真正递增的数据。它只是将 upsert 设置为 true 的更新。每次更新。查询是,
db.collection.update(
{ lifnr: 12345, bukrs: 3455},
{$set: {amount: 5600}}
{upsert: true}
)
如果找到 linfr 和 bukrs 组合,上述查询将更新金额。如果找不到,它将插入一个新文档。
我在各种 collection 中有数百万份文件。
我的应用程序必须定期更新一些增量数据到 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},那么它必须 insert/append 它。
指导我的方法。谢谢
根据您的编辑,它并不是真正递增的数据。它只是将 upsert 设置为 true 的更新。每次更新。查询是,
db.collection.update(
{ lifnr: 12345, bukrs: 3455},
{$set: {amount: 5600}}
{upsert: true}
)
如果找到 linfr 和 bukrs 组合,上述查询将更新金额。如果找不到,它将插入一个新文档。