Meteor:通过_id从集合中查找对象

Jos*_*ura 5 mongodb meteor

我试图通过_id与Meteor找到一个对象.

这是我尝试过的:

Meteor.publish("gifts", function(gid) {
  console.log("Looking for "+ gid);
  var gifts = Gifts.find({_id: gid}).fetch();
  console.log("Result: " + gifts);
  return gifts;
});
Run Code Online (Sandbox Code Playgroud)

这是输出:

寻找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;
});
Run Code Online (Sandbox Code Playgroud)

对象在数组中,_id与上面相同.

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

另外,如果我在mongo控制台中执行find,我会找到该对象:

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

我究竟做错了什么?

she*_*man 5

你从哪里插入文件?MongoDB以不同方式处理字符串和objectId,看起来Meteor中当前存在一个错误,它无法正确处理objectIds.

https://github.com/meteor/meteor/issues/61