Javascript Meteor MongoDB集合无法访问Meteor publish

Javascript Meteor MongoDB集合无法访问Meteor publish,javascript,node.js,mongodb,meteor,Javascript,Node.js,Mongodb,Meteor,我已将数据导入meteor mongodb数据库。以下是我所做的: 通过运行meteor应用程序 $yourMeteorAppDir流星 在一个终端和另一个终端中,通过 $mongod 启动另一个终端并运行以下操作,将数据导入meteor应用程序的数据库: $mongoimport-h localhost:3001-d meteor-c collectionNameHere

我已将数据导入meteor mongodb数据库。以下是我所做的: 通过运行meteor应用程序

$yourMeteorAppDir流星

在一个终端和另一个终端中,通过

$mongod

启动另一个终端并运行以下操作,将数据导入meteor应用程序的数据库:

$mongoimport-h localhost:3001-d meteor-c collectionNameHere 然而,从json文件导入文档后,我发现Meteor应用程序无法访问该集合。具体而言,当我尝试使用以下内容发布集合时:

Meteor.publish('collectionNameHere', function() 
   {return collectionNameHere.find();
});
我看到:

子ci9tk9AsFeyngHWwE引用异常错误:此处未定义集合名称 I20141203-07:15:18.436(-5)?在null处。\u处理程序(app/server/collectionName.js:9:14) I20141203-07:15:18.436(-5)?在MaybauditArgumentChecks(packages/ddp/livedata_server.js:1599) I20141203-07:15:18.436(-5)?在u.extend._runHandler(packages/ddp/livedata_server.js:943) I20141203-07:15:18.437(-5)?在扩展时开始订阅(packages/ddp/livedata\u server.js:769) I20141203-07:15:18.437(-5)?在u.extend.protocol_handlers.sub(packages/ddp/livedata_server.js:582) I20141203-07:15:18.437(-5)?在packages/ddp/livedata_server.js:546

我可以通过meteor mongo查看mongo中的收藏,也可以通过find查询。我是否需要从应用程序而不是通过导入创建MongoDB集合

  • 在项目根目录中创建一个新的
    数据库\u dump.json

  • 然后打开终端并将目录更改为项目根目录。例如
    cd/var/www/html/meteor/myapp/

  • 键入
    mongoimport--db meteor--collection mynewcollection--Type json--headerline--file'/var/www/html/meteor/myapp/database_dump.json'-h 127.0.0.1:3001--jsonArray

  • 新Mongodb系列

    // Lib 
    MyNewCollection = new Meteor.Collection('mynewcollection');
    
  • 发布您的新收藏

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

    // Client
    Meteor.subscribe("MyNewCollection");
    
  • 玩流星吧


  • 您需要一个对客户端和服务器都可用的
    collectionNameHere=new meteor.Collection('collectionNameHere')
    位置。感谢用户3557327。我的:lib/collections/collectionName.js中确实有这样的内容,folderI可能需要将return collectionNameHere.find()更改为return collectionNameHere.find({});集合仍然不可用。我所做的是通过
    $myApp reset
    重置MongoDB,然后添加文档以检查集合,如果没有文档,则从fixture.js文件插入它们。您必须通过终端(!)执行
    mongoimport
    ,而不是通过mongo shell(
    mongod
    )。这很重要罗恩,这是我正在做的一个辅助项目。我还需要从以前的Rails项目导入其他集合。我会继续尝试。谢谢你的帮助。