Mongodb 流星收藏(和出版)混乱

Mongodb 流星收藏(和出版)混乱,mongodb,meteor,Mongodb,Meteor,所以我有一个集合叫做Parties(我正在做角流星教程)。我已经删除了autopublish,因此在服务器上,我声明了如下内容: Meteor.publish('parties', function () { return Parties.find({secret: false}); }); 我已经在我的'both'目录中声明了Parties,如constparties=newmongoobservable.Collection('Parties') 现在,假设我在mongoDb中有3

所以我有一个集合叫做Parties(我正在做角流星教程)。我已经删除了autopublish,因此在服务器上,我声明了如下内容:

Meteor.publish('parties', function () {
    return Parties.find({secret: false});
});
我已经在我的'both'目录中声明了Parties,如
constparties=newmongoobservable.Collection('Parties')


现在,假设我在mongoDb中有3个文档,但其中一个是真实的。因此,仔细想想,我认为当使用
.find({})
查询时,各方仍然会返回3个文档。但是,它只返回2。为什么会这样?我认为Parties只是一个全局变量,不会受到我的发布声明的影响

参与方是一个变量,它意味着两个不同的东西:

  • 在服务器上时,它会创建对mongo集合的引用
  • 在客户端上,它创建对minimongo的引用,并在其中定义一个集合
  • 发布时,指定一个过滤条件,该条件指示数据库中的哪些数据将发布到客户端上的minimongo。客户端上的find()引用minimongo,即已发布的数据,而不是完整的数据库

    根据您的查询,客户机看到2条记录是正确的

    编辑:

    这是一个方便的浏览器工具;它可以向您显示哪些数据已发布到客户端


    接下来,我要问的是,“parties”(我传递到
    new MongoObservable.collection中的参数)是什么意思?它似乎不需要镜像我在数据库中为集合指定的名称。只是澄清一下,如果我在服务器上检查参与方的文档数量,它应该显示3,而如果我在客户端执行相同的操作,它应该显示2。这是因为meteor认识到,由于我在服务器上的发布定义,我在客户机上引用的各方应该受到限制?太好了,非常感谢。我一直在到处寻找答案。