【发布时间】:2018-02-26 01:27:01
【问题描述】:
这是我在服务器上的代码:
Meteor.publish('currentRequest', function (requestId) {
console.log('from publish');
console.log(requestId) // The id is printed successfully
console.log(Requests.findOne({_id: requestId})) // returns undefined
return Requests.findOne({_id: requestId});
});
项目 ID 已打印,但 .findOne() 似乎不起作用,因为它返回 undefined。
我在这里做错了什么?
【问题讨论】:
-
您的代码看起来不错,但是由于
findOne没有返回 Mongo 光标,您的发布将无法正常工作。您将需要使用find函数。 -
@GaëtanRouziès find() 返回空数组。就像没有具有该 _id 但存在的文档一样
-
您在哪里检查了您的文档是否存在?你从哪里得到这个“id”?手动检查
Requests.find().fetch()的内容,我很确定你不会找到你的文档,因为你的查询是正确的并且文档不存在。 -
@GaëtanRouziès Requests.find().fetch() 返回集合中的所有元素。 “_id”看起来像这样,{ _id: { _str: '598d74ebc048c71100e8f730' }