【发布时间】:2019-01-14 13:34:36
【问题描述】:
我们有一个业务用例,我们在集合上打开一个更改流并监听通过它发送的所有更新。
然后我们收到的更改被推送到另一个 mongo DB 中,我们需要以这种特定格式存储我们的数据。
首先插入目标数据库"
{
"_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
}
我已经能够通过使用文档顶部的版本字段来实现相同的效果,将其拉出并使用 $inc 运算符将其加一,然后将值插入数组索引中,但我想实现向数组添加新索引时版本的增量。
谢谢,
【问题讨论】:
-
看起来版本是数组索引+1,如果数组元素只是插入,那么存储版本是多余的
-
感谢您回复,但如果是这种情况,我在获取记录时会遇到问题,有没有办法可以在使用 Java 的 mongo 数组上使用运算符的索引?例如,如果我有版本号,如果没有它们,拉它们会很容易,我需要一种方法来使用数组索引作为版本并拉它
标签: mongodb