我正在尝试使用_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;
});

这是输出:



如果我拿出查询:
Meteor.publish("gifts", function(gid) {
  console.log("Looking for "+ gid);
  var gifts = Gifts.find().fetch()[1];
  console.log("Result:" + gifts._id);
  return gifts;
});

该对象在数组中,并且_id与上面的相同。



另外,如果我在mongo控制台中执行查找,则会找到该对象:
> db.gifts.find({_id: 'f1790caa-7a10-4af5-a01c-e80bb2c2fd55'});
{ "name" : "A new gift", "_id" : "f1790caa-7a10-4af5-a01c-e80bb2c2fd55" }

我究竟做错了什么?

最佳答案

您是从哪里插入文档的? MongoDB对字符串和objectIds的处理方式有所不同,看来Meteor中当前存在一个错误,无法正确处理objectIds。

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

关于mongodb - meteor :通过_id从集合中查找对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12410993/

10-11 06:53