Meteor.Collection.ObjectID()vs MongoDB ObjectId()

hoo*_*doy 29 mongodb meteor

为什么Meteor.js使用它自己的ID算法?

为什么不使用MongoDB的ObjectId()?

Aks*_*hat 36

如果你选择使用它,Meteor对对象id使用相同的方法:

Meteor.Collection.ObjectID() 与MongoDB相同 ObjectID

它就在这个Meteor.Collection名字下面.它使用EJSON将普通JSON中的对象id保存到客户端.因为基本上有2个带有流星的数据库

Minimongo

这是客户端mongodb的一种缓存.当浏览器加载时,数据从服务器上的主mongodb下载到此.进行更改后,它们会被推送到服务器.

服务器MongoDB

这是服务器上10gen的原始mongodb

因此,由于这两个数据库,Meteor需要包含mongodb功能,Meteor.Collection并允许您在客户端和服务器上使用相同的代码.

默认情况下,meteor不会使用Object ID,它会使用一些随机的字母数字文本.这样做是为了您可以轻松地在您的html属性中的URL和ID中使用ID.

如果您使用,new Meteor.Collection.ObjectID()您将获得一个ObjectID对象,该对象将在服务器端使用mongodb的ObjectID规范.对象ID中的时间戳值不会被阻止,但这不应该造成任何伤害.

  • @BradM你可以尝试检查`/ ^ [A-Za-z0-9] {17} $ /`可以工作.它也不完全是字母数字,我从未在_id中看到过0或1.我认为不会使用像l和1那样在视觉上混淆的数字. (3认同)

Raj*_*d02 5

由于0.9.1 Meteor建议使用Mongo.ObjectID而不是Meteor.Collection.ObjectID.基本上两者都是一样的.检查history.md以获取命名约定的更多更改.