执行以下操作可以正常工作:
$ mrt create testapp
$ cd testapp
$ mkdir local
$ cd local
$ mkdir collections
$ touch test.js
在test.js中,我添加:
Test = new Meteor.Collection('test');
然后我开始流星:
$ meteor
打开一个新的控制台选项卡,我启动Mongo:
$ meteor mongo
我插入一个条目:
$ db.test.insert({ Title: "This is a test" });
我在localhost上打开浏览器,可以使用控制台查看:
test.findOne();
好的,所以这是有效的,因为它应该如此。但是,我有一个我正在研究的项目,我已经工作了几天。我无法弄清楚导致问题的是什么,但我无法通过控制台访问这些集合。
Posts = new Meteor.Collection('posts');
我使用mongo控制台插入测试帖,并可以使用mongo控制台检索它,但在浏览器中我得到:
Posts.findOne();
-- undefined
我一直在挖掘,无法弄清楚我可能做些什么导致它无法正常工作。我最初从localhost启动了这个应用程序,但在MongoHQ上托管了一个远程数据库。但我删除了本地内部的DB文件夹,重置了应用程序。重置mongo。我创建了一个新的文件夹并复制了基本文件,因此流星基本上是第一次运行。我无法弄清楚问题。
:(
有什么建议吗?谢谢!
答案 0 :(得分:1)
您必须以客户端和服务器都可以看到它的方式定义集合。如果服务器没有集合定义,则它无法代表客户端写入数据库。我建议将它放在像collections/posts.js
这样的文件中。