我昨天更新了我的流星,并尝试使用新的Meteor.Collection.ObjectID
。 但自从没有成功。首先,我更新了我的藏品以这样的方式流星0.5.7:如何处理/使用Meteor.Collection.ObjectID?
myCollection = new Meteor.Collection('mycollection', {idGeneration: 'MONGO'}
现在,正常的新的插入有_id
像Wi2RmR6CSapkmmdfn
...
然后,我有一个包括阵列的集合(?)。我想为此数组中的每个对象都有一个唯一的ID。所以我$push
一个像id: new Meteor.Collection.ObjectID()
字段的对象到我的数组中。数据库中的结果如下所示:ObjectId("5b5fc278305d406cc6c33756")
。 (这似乎是正常的。)
但后来我想更新我推送的对象,如果id
等于一个id,我将它作为数据属性存储在html标记之前。
var equals = EJSON.equals(dbId, htmlId);
(这导致每次在false
所以我记录的值dbId
和htmlId
与console.log(typeof dbId, dbId);
控制台)。
这两个变量的值如下:
object { _str: 'a86ce44f9a46b99bca1be7a9' }
(DBID)
string ObjectID("a86ce44f9a46b99bca1be7a9")
(htmlId;这似乎是正确的,但为什么是一个自定义类型的字符串?)
如何使用Meteor.Collection.ObjectID
正确?
**谢谢你的快速解答! :)** Btw:'{{_id.toHexString}}'不直接工作,但我注册了一个全局的handlebars helper,它可以完成这项工作。 – 2013-02-23 17:57:16
它应该没有帮助者的工作,我发布之前测试它是否有其他预先流星0.57对象id? – Akshat 2013-02-23 17:59:01
嗯......我删除了我的集合,但是我的handlebars调试帮助器,它在控制台中打印给定的值,当我用'{{debug _id.toHexString}}'调用他时不打印任何内容。我查看了minimongo的源代码,并且{{_id._str}}直接工作('ObjectID.toHexString()'返回'_str') – 2013-02-23 22:22:15