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