我正在使用Meteor 0.6.5并且我正在尝试发布/订阅具有特定_id的数据,但它似乎并不成功。 autopublish包已被删除。以下是我的代码:
Meteor.publish("currentBook", function(bookId){
return Books.find({_id: bookId});
});
Meteor.subscribe("pages", {_id: Session.get("currentBook").id});
以下是Chrome控制台的日志输出,它不包含我正在寻找的对象:
LocalCollection.Cursor
_transform: null
collection: LocalCollection
cursor_pos: 0
db_objects: null
limit: undefined
reactive: true
selector_f: function (doc) { // 562
selector_id: undefined
skip: undefined
sort_f: null
__proto__: Object
请让我知道如何解决这个问题。谢谢
答案 0 :(得分:2)
代码:
Meteor.publish("currentBook", function(bookId){
return Books.find(bookId);
});
Deps.autorun(function(){
Meteor.subscribe("currentBook", Session.get("currentBook").id);
});
_id
包装在订阅频道中的对象中,但未在发布中将其解压缩。这种包装不是必需的。subscribe
调用Deps.autorun
。答案 1 :(得分:0)
除了休伯特的答案之外,另一件事是使用.find()
不会直接返回对象,它会返回一个懒惰的光标,这就是你所看到的。
要将数据装箱到数组中,请在使用控制台时使用.find().fetch()
。