流星收集称它是空的

时间:2015-05-25 21:19:27

标签: javascript mongodb meteor collections database

我之前发布了这个(Shared Collection Between Client and Server Meteor),我不确定它已经完全解决但我相信还有另一个问题出现了。

在我的console.log(Streams.find().fetch());文件中执行client.js时,结果为[]。但是,当我使用meteor mongo检查数据库(db.Streams.find().forEach(printjson))时,会显示三个不同的对象。

发生了什么事?

lib/streams.js

Streams = new Meteor.Collection("streams");

server/server.js

Meteor.publish("streams", function () {
  return Streams.find();
});

client/client.js

if(Meteor.isClient){
    Meteor.subscribe("streams");
    Template.body.helpers ({
      streams: function() {
        console.log(Streams.find().fetch());
        return Streams.find();
      }
   });
}

1 个答案:

答案 0 :(得分:1)

这是基于链接问题(Shared Collection Between Client and Server Meteor)的猜测。在该问题中,您将集合称为streams Streams = new Meteor.Collection("streams");

但是在这个问题中你正在使用Streams db.Streams.find().forEach(printjson) // Note the capital S in Streams

所以我会说这可能是区分大小写的事情,请尝试: Streams = new Mongo.Collection("Streams"); 这将正确匹配mongo集合的名称。同时将Meteor.Collection更改为更新的Mongo.Collection