插入数组项并递增版本号(一次执行)

时间:2018-12-27 05:50:12

标签: mongodb

我们有一个业务用例,我们在集合上打开变更流,并侦听通过它发送的所有更新。

然后将接收到的更改推送到另一个mongo数据库中,在这里我们需要将数据以这种特定格式存储。

首先插入目标数据库”

{
    "_id"   : :"1"
    "name"  : "XXX",
    "value" " "YYY" 
}
delta[]

//没有更新,因为这是第一次插入

首先更新为相同的ID

{
    "_id"   : :"1"
    "name"  : "XXX",
    "value" " "YYY" 
}
delta
{
   [ "name","AAA", version : 1 ] 

//更改流侦听名称更改     }

第二次更新为相同的ID。

{
    "_id"   : :"1"
    "name"  : "XXX",
    "value" " "YYY" 
}
delta
{
   [ "name","AAA", version : 1 ],[ "value","MMM", version : 2 ] //Second 
}

通过使用文档顶部的version字段将其拉出并使用$ inc运算符向其添加加一,然后将值插入数组索引中,我已经能够实现相同的目标,但是我想要实现将新索引添加到数组时版本的增量。

谢谢

1 个答案:

答案 0 :(得分:0)

当您有一个很小的记录集时,我能够使用一个简单的序列来解决这个问题,但是对于我的记录来说,每天的记录量是一百万,由于计算ID的版本号,这是行不通的我将不得不执行dB打击,并且这将无法缩放。