Meteor MongoDB Collection Meteor无法发布发布

问题描述:

我已将数据导入流星mongodb数据库。下面是我做的: 随着流星应用程序通过Meteor MongoDB Collection Meteor无法发布发布

$ yourMeteorAppDir meteor

在一个终端和另一个终端启动MongoDB的运行通过

$ mongod

启动运行另一个终端,运行下面的数据导入到你的流星应用程序的数据库与:

$ mongoimport -h localhost:3001 -d meteor -c collectionNameHere < jsonFileNameHere.json

但是,从json文件导入文件后,我发现集合不是访问我的Meteor应用程序。具体而言,当我试图与发布的集合:

Meteor.publish('collectionNameHere', function() 
    {return collectionNameHere.find(); 
}); 

我看到:

Exception from sub ci9tk9AsFeyngHWwE ReferenceError: collectionNameHere is not defined I20141203-07:15:18.436(-5)? at null._handler (app/server/collectionName.js:9:14) I20141203-07:15:18.436(-5)? at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1599) I20141203-07:15:18.436(-5)? at _.extend._runHandler (packages/ddp/livedata_server.js:943) I20141203-07:15:18.437(-5)? at _.extend._startSubscription (packages/ddp/livedata_server.js:769) I20141203-07:15:18.437(-5)? at _.extend.protocol_handlers.sub (packages/ddp/livedata_server.js:582) I20141203-07:15:18.437(-5)? at packages/ddp/livedata_server.js:546

我可以通过流星蒙戈看到蒙戈集合,可以通过查找查询。我是否需要从应用程序创建MongoDB集合,而不是通过导入?

+0

你需要一个'collectionNameHere =新meteor.Collection( 'collectionNameHere')'的地方提供给客户端都和服务器。 – user3557327 2014-12-04 21:48:10

+0

感谢user3557327。我确实在我的:lib/collections/collectionName.js文件夹中有这个 – m2web 2014-12-04 21:49:58

+0

我可能需要更改返回collectionNameHere.find()以返回collectionNameHere.find({}); – m2web 2014-12-04 21:56:28

  1. 建立在你的项目根目录下的新database_dump.json

  2. 然后打开您的终端并将目录切换到您的项目根目录。例如cd /var/www/html/meteor/myapp/

  3. 类型mongoimport --db meteor --collection mynewcollection --type json --headerline --file '/var/www/html/meteor/myapp/database_dump.json' -h 127.0.0.1:3001 --jsonArray

  4. 新的MongoDB集合

    // Lib 
    MyNewCollection = new Meteor.Collection('mynewcollection'); 
    
  5. 发布您的新的集合。

    // Server 
    Meteor.publish("mynewcollection", function() { 
        return MyNewCollection.find({}); 
    }); 
    
  6. 订阅它

    // Client 
    Meteor.subscribe("MyNewCollection"); 
    
  7. 有乐趣与流星

+0

您必须通过终端(!)执行'mongoimport',而不是通过mongo shell('mongod')执行。这很重要。 :) – Ron 2014-12-06 18:54:38

+0

Ron,这是我工作的一个副项目。我有其他集合要从以前的Rails项目导入。我会继续前进。谢谢你的帮助。 – m2web 2014-12-07 19:57:24