【发布时间】:2015-07-11 22:09:32
【问题描述】:
我是新的流星,我有一个问题,我无法从 mongodb 收集(我使用铁路由器)
/client/routes.js
Router.route('/page', function(){
this.render('page');
});
/client/foo.js
city = new Mongo.Collection('data');
if (Meteor.isClient) {
Template.foo.helpers({
data: function(){
return city.find();
}
});
}
client/views/foo.html
<template name="foo">
{{#each data}}
{{> all_data}}
{{/each}}
</template>
<template name="all_data">
<li>{{city}}</li>
</template>
在 chrome 控制台中,命令 city.find() 给我:
L…n.Cursor {collection: LocalCollection, sorter: null, _selectorId: 未定义,匹配器:M…o.Matcher,跳过:未定义…}
在 mongo 控制台 db.data.find() 中它工作正常
我认为连接mongodb有问题
【问题讨论】:
-
在您的客户端代码或控制台中尝试
console.table (city.find().fetch());。find()方法返回一个游标,findOne()或 find().fetch() 返回一个文档数组。 -
city.find().fetch()仅返回[]和findOne()返回未定义 -
如果您删除了自动发布包,请记住您需要定义
allow-deny规则和发布,以便在客户端访问您的数据。见discovermeteor.com/blog/…。您还需要在both文件夹中定义您的集合,因此它在服务器和客户端上都引用同一个集合(如果名称匹配,则不确定这是强制性的)。
标签: mongodb iron-router