Meteor Collection文档ID:Random.id()或Meteor.Collection.ObjectID()

时间:2015-03-27 14:21:13

标签: javascript mongodb meteor

当我将文档插入Meteor集合时,它们的_id形式为Random.id

Random.id();
// "wjQyQ6sGjzvNMDLiJ"

当我直接从MongoDB 将文档插入到相同的集合中时,它们的_id形式为Meteor.Collection.ObjectID

new Meteor.Collection.ObjectID();
// LocalCollection._ObjectID {_str: "b105582bc495617542af18e9"…}

为什么我的应用使用Random.id?这是遗产设置吗?

我创建应用时的Meteor版本:

meteor@1.1.4
meteor-platform@1.2.1

1 个答案:

答案 0 :(得分:16)

从应用程序以编程方式创建Meteor集合时,您可以指定一个选项,该选项确定使用哪种类型的ID生成方法为该集合中的文档生成新ID。默认情况下,如果未指定任何选项,则使用随机字符串生成函数。查看Meteor documentation以查看我正在谈论的内容。如果您未指定该选项,Meteor只需使用random包即可生成这些ID字符串。如果检查链接,您将看到列表中的第一项是随机ID生成功能。这是调用Random.id()函数的地方。显然,直接转到MongoDB会绕过这种可能的逻辑流,从而产生MongoDB类型的ID字符串。