如何在MongoDB中存储增量数据?

时间:2015-12-24 10:37:47

标签: mongodb compound-index

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

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

指导我的方法。谢谢

1 个答案:

答案 0 :(得分:1)

根据您的编辑,它不是真正递增的数据。它只是一个更新,upsert设置为true。每次都要更新。查询不好,

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

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