为什么meteor从今天开始在_id字段周围添加ObjectId?

pau*_*del 4 meteor

也许我完全错了,但是因为我今天开始的项目,当我使用meteor mongo直接连接到mongodb,并插入一条记录(使用mycol.insert(..)时,_id字段被ObjectId包围("12345555 ......").当从代码添加记录时,情况并非如此.因此,通过Meteor Mongo添加的记录不再在应用内部被识别.我过去经常这样做...这里发生了什么?

谢谢保罗.

Ste*_*ffo 17

这是MONGO的方式,你看到这是因为你使用的是Mongo shell.Meteor默认使用不同的方法(参见下文),您可以通过编程方式使用它.检查Meteor文档new Mongo.Collection

idGeneration字符串

在此集合中生成新文档的_id字段的方法.可能的值:

  • 'STRING':随机字符串
  • 'MONGO':随机的Mongo.ObjectID值

默认的id生成技术是'STRING'

在Meteor中,如果你写的话

Steffo = new Meteor.Collection("steffo", {idGeneration: 'STRING'});
Run Code Online (Sandbox Code Playgroud)

这将导致条目

{ "foo" : "bar", "_id" : "68FWFNGRAuRt82pWy" }
Run Code Online (Sandbox Code Playgroud)

如果你使用

Paul = new Meteor.Collection("paul", {idGeneration: 'MONGO'});
Run Code Online (Sandbox Code Playgroud)

你会得到

{ "foo" : "bar", "_id" : ObjectId("26cfdb5f200adfa0b55a50d3" }
Run Code Online (Sandbox Code Playgroud)

后者发生在使用Mongo shell时.

  • 我明白了,但我的观点是我有 mongo shell 生成字符串的项目。最近的项目使用对象 ID。 (2认同)