MongoDB:使用多个并发编写器获取最后插入文档的ObjectId?

时间:2011-10-11 00:40:47

标签: mongodb mongoid mongomapper nosql

使用MongoDB考虑以下场景:

三位作家(A,B,C)将文档插入同一集合。

首先插入,然后是B,接着是C。

我们如何保证A检索他插入的文件的ObjectId而不是B的文件或C的文件?我们是否需要序列化写入(即,在A插入和检索ObjectId后只允许B写入),或者MongoDB是否为此场景提供了一些本机功能?

谢谢!

我们在Rails上。

2 个答案:

答案 0 :(得分:0)

这里的正常模式是驱动程序分配ObjectId然后在服务器获取插件之前就知道它是什么。

答案 1 :(得分:0)

您可以在插入文档之前在客户端应用程序(编写器)中生成_id值。这样您就不需要依赖生成ObjectId的服务器来检索正确的值。如果将_id留空,大多数MongoDB语言驱动程序会自动为您执行此操作。