5

我正在尝试使用 Meteor 通过 _id 查找对象。

这是我尝试过的:

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 控制台中执行 find ,我会找到对象:

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

我究竟做错了什么?

4

1 回答 1

5

你是从哪里插入文件的?MongoDB 对字符串和 objectIds 的处理方式不同,目前 Meteor 中似乎存在一个错误,无法正确处理 objectIds。

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

于 2012-09-13T20:21:30.827 回答