我应该使用MongoId对象来识别子文档吗?

时间:2013-03-05 20:33:01

标签: php mongodb

我有这样的架构设置:

{
 "_id": ObjectId("5130ea935b51eafc13000032"),
 "items": [
           {
             "id": ???,
             "title": "yes"
           },
           {
             "id": ???,
             "title": "no"
           }
          ]
 }

在整个集合中为所有子文档分配唯一ID的最佳方法是什么?

我应该使用 MongoId()对象吗? PHP的 uniqid()函数?一个简单的增量? ......为什么?

1 个答案:

答案 0 :(得分:1)

嗯,这是关于ID的常见问题,但仍然是一个棘手的问题。

首先,如果您有嵌入的文档列表,请检查您的主题区域。这些对象是否具有自然ID(如书籍有ISBN号等)?如果是的话 - 你可以很容易地将其标记为ID,这对你的代码更有帮助。更容易看到数据 - 应用程序绑定。

如果子对象没有自然id,你最好使用MongoId对象 - 它已经实现了,你不必考虑生成一个新的唯一id(即使它是一个递增)并手动将该id设置为新对象。

希望有所帮助。祝你好运。