为什么`Meteor.findOne()`每次都返回一个不同的ID?

时间:2016-02-13 23:24:03

标签: meteor

我正在与Matthew Yee-King博士一起构建一个即时消息应用程序作为Coursera responsive web development course的一部分。该项目是here;我已经链接到后代的特定提交。

我有一个包含Chats objects的集合Chat。我正在向客户发布。

autopublishinsecure个软件包已被删除,因此我使用the following从服务器向客户发布集合:

Meteor.publish("chats", function(){
    return Chats.find({$or: [{user1: Meteor.userId},
                             {user2: Meteor.userId}]});
});

客户使用the following订阅该集合:

Meteor.subscribe("chats");

当我通过Chats meteor mongo访问服务器上的db.chats.findOne()对象时,我得到一个带有ID的对象。

当我使用Chats.findOne()在客户端(Chrome 47)控制台上访问它时,我得到一个具有相同属性值的对象,_id除外,每次调用时都不同命令

这里有什么问题?我应该得到与服务器相同的_id,对吗?

1 个答案:

答案 0 :(得分:0)

错误发生在publish function

Meteor.userId()

首先,Meteor.userId()是一个函数。其次,文档指出this.userId在发布函数中之外的任何地方都可用。

而是发布功能中的 for (j = 0; j < slots + 2; j++) { ("%d", &guess[j]); } should be used