Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
meteor 0.5.7:如何处理/使用meteor.Collection.ObjectID?_Meteor_Objectid - Fatal编程技术网

meteor 0.5.7:如何处理/使用meteor.Collection.ObjectID?

meteor 0.5.7:如何处理/使用meteor.Collection.ObjectID?,meteor,objectid,Meteor,Objectid,我昨天更新了meteor,并尝试使用新的meteor.Collection.ObjectID。 但是因为没有成功。首先,我以这种方式更新了我的收藏: myCollection=newmeteor.Collection('myCollection',{idGeneration:'MONGO'} 现在,普通的新插入有一个\u id像Wi2RmR6CSapkmmdfn 然后我有一个包含数组的集合。我希望这个数组中的每个对象都有一个唯一的id。因此我$push将一个具有类似id:new Meteor.c

我昨天更新了meteor,并尝试使用新的
meteor.Collection.ObjectID
。 但是因为没有成功。首先,我以这种方式更新了我的收藏:

myCollection=newmeteor.Collection('myCollection',{idGeneration:'MONGO'}
现在,普通的新插入有一个
\u id
Wi2RmR6CSapkmmdfn

然后我有一个包含数组的集合。我希望这个数组中的每个对象都有一个唯一的id。因此我
$push
将一个具有类似
id:new Meteor.collection.ObjectID()的字段的对象推送到我的数组中。数据库中的结果如下:
ObjectID(“5B5FC278305D40CC6C33756”)
(这似乎很正常。)

但是稍后,如果
id
等于一个id,我想更新推送的对象,这个id以前作为数据属性存储在html标记中

var equals=EJSON.equals(dbId,htmlId);
(每次都会导致
false
。因此,我使用
console.log(dbId,dbId的类型);
将值
dbId
htmlId
记录到控制台中

这两个变量的值如下所示:

对象{u str:'a86ce44f9a46b99bca1be7a9'}
(dbId)

字符串ObjectID(“a86ce44f9a46b99bca1be7a9”)
(htmlId;这似乎是正确的,但为什么自定义类型是字符串?)


如何使用Meteor.Collection.ObjectID
正确吗?

在html中放置
htmlId
时,您需要将其作为字符串而不是对象,请记住
\u id
现在是一个对象,车把正在猜测并使用
toString()
&这就是它显示为
ObjectID(“…”)的原因

因此,如果您在html中使用
{{{{u id}}
,您现在需要使用
{{{{u id.toHexString}}
正确地提取字符串部分

当您使用javascript提取此html值时,需要将其返回到objectid中:

js:


谢谢你的快速回答!:)顺便说一句:
{{{{u id.toHexString}}
没有直接工作,但是我注册了一个全局把手助手,它可以完成这个工作。没有助手的情况下应该可以工作,我在发布之前测试了它。你有其他pre Meteor 0.57对象id吗?嗯。。。我已经删除了我的集合,但是当我用
{{debug\u id.toHexString}
调用Handlebar debug helper时,它在控制台中打印给定的值,而不打印任何内容。我已经查看了minimongo源代码,
{{{u id.{u str}}
直接工作(
ObjectID.toHexString()
返回
\u str
var valuefromhtml = "a86ce44f9a46b99bca1be7a9"; //Get with Jquery,DOM,etc

htmlId = new Meteor.Collection.ObjectID(valuefromhtml); //see: http://docs.meteor.com/#collection_object_id

EJSON.equals(htmlId, dbId); //Should be true this time