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

chr*_*ris 15 javascript mongodb meteor

当我将文档插入我的Meteor集合时,它们具有_id以下形式Random.id:

Random.id();
// "wjQyQ6sGjzvNMDLiJ"
Run Code Online (Sandbox Code Playgroud)

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

new Meteor.Collection.ObjectID();
// LocalCollection._ObjectID {_str: "b105582bc495617542af18e9"…}
Run Code Online (Sandbox Code Playgroud)

为什么我的应用程序使用Random.id?这是传统设置吗?

我创建应用程序时的Meteor版本:

meteor@1.1.4
meteor-platform@1.2.1
Run Code Online (Sandbox Code Playgroud)

n4t*_*t4r 16

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