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
Mongodb 流星:通过_id从集合中查找对象_Mongodb_Meteor - Fatal编程技术网

Mongodb 流星:通过_id从集合中查找对象

Mongodb 流星:通过_id从集合中查找对象,mongodb,meteor,Mongodb,Meteor,我正试图用流星找到一个物体 以下是我尝试过的: Meteor.publish("gifts", function(gid) { console.log("Looking for "+ gid); var gifts = Gifts.find({_id: gid}).fetch(); console.log("Result: " + gifts); return gifts; }); 这是输出: 查找f1790caa-7a10-4af5-a01c-e80bb2c2fd55结果:

我正试图用流星找到一个物体

以下是我尝试过的:

Meteor.publish("gifts", function(gid) {
  console.log("Looking for "+ gid);
  var gifts = Gifts.find({_id: gid}).fetch();
  console.log("Result: " + gifts);
  return gifts;
});
这是输出:

查找f1790caa-7a10-4af5-a01c-e80bb2c2fd55结果:

如果我提出这个问题:

Meteor.publish("gifts", function(gid) {
  console.log("Looking for "+ gid);
  var gifts = Gifts.find().fetch()[1];
  console.log("Result:" + gifts._id);
  return gifts;
});
对象在数组中,并且_id与上面的相同

查找f1790caa-7a10-4af5-a01c-e80bb2c2fd55结果: f1790caa-7a10-4af5-a01c-e80bb2c2fd55

此外,如果我在mongo控制台中执行查找,我会找到以下对象:

> db.gifts.find({_id: 'f1790caa-7a10-4af5-a01c-e80bb2c2fd55'});
{ "name" : "A new gift", "_id" : "f1790caa-7a10-4af5-a01c-e80bb2c2fd55" }

我做错了什么?

您是从哪里插入文档的?MongoDB以不同的方式对待字符串和ObjectID,而且Meteor中目前似乎存在一个错误,无法正确处理ObjectID


谢谢你的指点。令人惊讶的是,即使考虑到Meteor处于早期阶段,像这样基本的东西仍然不起作用。在Meteor版本1.4中,仍然可以观察到这种行为(我遇到了同样的陷阱)。@shelman链接的问题建议使用
meteor shell
而不是mongo控制台。