MongoDb中的全局自动递增字段

MongoDb中的全局自动递增字段,mongodb,Mongodb,有没有办法在集合中创建全局自动递增值 Perforce有变更列表的概念,这是无状态更新的强大功能。我正在考虑相同类型的功能 例如: create> DocA.name = "foo" => changelist = 1 create> DocB.name = "bar" => changelist = 2 update> DocA.name = "bob" => changelist = 3 create> DocC.name = "joe" =>

有没有办法在集合中创建全局自动递增值

Perforce有变更列表的概念,这是无状态更新的强大功能。我正在考虑相同类型的功能

例如:

create> DocA.name = "foo" => changelist = 1
create> DocB.name = "bar" => changelist = 2
update> DocA.name = "bob" => changelist = 3
create> DocC.name = "joe" => changelist = 4
结果:

DocA.changelist = 3
DocB.changelist = 2
DocC.changelist = 4
然后我可以搜索changelist:4之后所做的任何更改,并确信我没有遗漏任何内容


mongodb专家对如何有效地做到这一点有什么想法吗?

mongodb文档中有一个清单。一般来说,这是一种不好的做法,但这可能适用于您所寻求的功能

也就是说,我还看到人们在最后一次更新时间时使用“时间戳”。这可能满足您的要求


同样,如果这是一个真正关键的功能,您可能想看看Riak的MVCC,它似乎最接近您想要的功能。

感谢您的回复!时间戳总是有一个潜在的碰撞问题,一直到微秒,这对我们来说是个问题。然而,我突然想到,我们可以使用附加到时间戳的计数器的辅助集合。那篇自动递增字段的文章看起来相当。。。丑陋。嗯,听起来你需要某种形式的MVCC。。。还不知道你和MongoDB的婚姻状况如何,你可能想看看Riak。。。至于auto increment这篇文章,它不是很好,因为它不被推荐。我明白你关于Riak的意思,但我认为它仍然没有提供一个不断增加的数值。通过增加“变更列表”,可以轻松查找自上次检查以来集合中发生的更改。vclock是基于散列的,更多用于更新和同步冲突解决。