我是MeteorJS的新手,所以这个问题可能很愚蠢,但无论如何。 我已经多次尝试过关于使用meteorJS构建初学者应用程序的教程,甚至是meteor.com头版提供的应用程序。 但这行代码
Something = new Meteor.Collection("something");
似乎没有工作时间a)我的流星应用程序运行但发现(并返回)没有来自此mongodb集合的数据和b)当我输入meteor应用程序目录"meteor mongo"
并尝试手动将一些数据插入此集合中,它会返回一个未定义的集合错误。
我刚刚使用curl https://install.meteor.com/ | sh
安装了MeteorJS,据我所知安装了meteor-mongodb版本。
经过几个小时的谷歌搜索,我可以承认,显然我做错了什么,但我找不到什么! 任何建议/帮助将非常感谢!
提前谢谢!
答案 0 :(得分:1)
meteor主页上的简单示例使用了两个名为autopublish
和insecure
的默认包,它们允许您快速模拟在幕后为您设置发布/订阅模式的应用程序,并假设访问者是可信的
话虽如此,只要你使用以下方式设置你的收藏:
CollectionNameMeteor = new Meteor.Collection("collection-name-mongo");
Meteor实现http://docs.meteor.com/#meteor_collection,这是一个与mongodb兼容的集合表示,但语法略有不同。
虽然使用mongodb的语法db.collection-name-mongo.find()
对mongodb进行直接查询会返回文档,但meteor的集合api使用稍微不同的语法CollectionNameMeteor.find()
并返回此处所述http://docs.meteor.com/#meteor_collection_cursor的游标并检索来自该游标的文档,您需要CollectionNameMeteor.find().fetch()
将结果作为数组提取。
但是你通常会在你的流星代码上使用光标参考,因为流星的大部分魔法都依赖于它。
同样,要在mongodb shell上进行插入,你要做
db.collection-name-mongo.insert({foo: "bar"})
而在流星上,你会做
CollectionNameMeteor.insert({foo: "bar"})
其中还有一个有用的回调http://docs.meteor.com/#insert