0

我在各种收藏中拥有数百万份文件。

我的应用程序必须定期将一些增量数据更新到 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} 的新记录,那么它必须插入/附加它。

指导我的方法。谢谢

4

1 回答 1

1

根据您的编辑,它并没有真正增加数据。它只是将 upsert 设置为 true 的更新。每次都要更新。查询将是,

db.collection.update(
  { lifnr: 12345, bukrs: 3455},
  {$set: {amount: 5600}}
  {upsert: true}
)

如果找到 linfr & bukrs 组合,上述查询将更新金额。如果没有找到,它将插入一个新文档。

于 2015-12-24T10:50:03.910 回答