在Meteor文档中说
在服务器上(如果未指定连接),将在后端Mongo服务器上创建具有该名称的集合。
如果服务器上已经有一个带有该名称的集合,我假设它只是打开它?或者在Mongo中是collection!= database,后者是服务器上的持久实体?
答案 0 :(得分:3)
通常,MongoDB仅在对不存在的集合执行写入时才创建集合,但您可以显式创建集合。如果Mongo.collection('name')
集合不存在,name
将创建{{1}}集合。否则它什么都不做,但如果你对集合执行写操作,它们仍然会存在。
换句话说,这种行为不会对您产生巨大影响。即使它尚不存在,您也可以使用该集合,因为Meteor将为您创建它。
答案 1 :(得分:2)
在服务器上,new Mongo.Collection()
加载Mongo集合。
在客户端上,同样加载浏览器中的Mini-Mongo集合。
除非您将autopublish
软件包作为项目的一部分,否则必须使用Meteor.publish()
,connection.allow()
和Meteor.subscribe()
方法。
如果您在客户端上创建一个没有名称的集合:new Mongo.Collection(null)
,它将根本不与服务器同步。
如果客户端集合没有相应的服务器集合,则会导致错误Method Not Found
。