我们有一个业务用例,我们在集合上打开变更流,并侦听通过它发送的所有更新。
然后将接收到的更改推送到另一个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运算符向其添加加一,然后将值插入数组索引中,我已经能够实现相同的目标,但是我想要实现将新索引添加到数组时版本的增量。
谢谢
答案 0 :(得分:0)
当您有一个很小的记录集时,我能够使用一个简单的序列来解决这个问题,但是对于我的记录来说,每天的记录量是一百万,由于计算ID的版本号,这是行不通的我将不得不执行dB打击,并且这将无法缩放。