保持默认的mongo _id和MongoDB的唯一索引

时间:2013-11-18 14:52:47

标签: mongodb

保持标准“_id”在文档中生成我的mongo以及我自己的唯一标识符(例如“name”),或者我应该只用实际名称替换生成的_id所以我的文档将会是好的还是坏的做法看起来像这样:

{
    _id: 782yb238b2327b3,
    name: "my_name"
}

或者就像这样:

{
    _id: "my_name"
} 

1 个答案:

答案 0 :(得分:1)

这取决于场景,拥有自己的唯一ID没有任何问题,它可能是字符串或数字,完全取决于您的情况,只要它的独特性,重要的是你负责它。当然,您可能希望为其添加索引。

例如我有一个额外的ID字段,这是一个名为'ID'的数字,因为我需要一个序号作为标识符,另一个用例可能是你迁移一个应用程序,所以你必须符合特定的序列模式。

唯一标识的序列可以轻松存储在单独的文档/集合中。

如果您没有要求不使用自定义的_id,则使用内置的_id没有问题,一个有趣的事实是您可以从_id中获取创建的日期。总是有用的。

db.col.insert( { name: "test" } );
var doc = db.col.findOne( { name: "test" } );
var timestamp = doc._id.getTimestamp();