在Meteor中:新的Mongo.collection('name')如果已经存在于服务器上,它将如何运作?

时间:2014-09-23 18:15:27

标签: mongodb meteor

在Meteor文档中说

  

在服务器上(如果未指定连接),将在后端Mongo服务器上创建具有该名称的集合。

如果服务器上已经有一个带有该名称的集合,我假设它只是打开它?或者在Mongo中是collection!= database,后者是服务器上的持久实体?

2 个答案:

答案 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