无法在流星中创建文档集合

时间:2020-07-03 06:35:28

标签: mongodb meteor

尝试创建一个名为“ documents”的集合,并将main.js中的文档插入流星应用程序中。尝试在控制台窗口中执行findOne方法时,出现“ Uncaught ReferenceError:未定义文档”。我正在使用流星版本1.10.2。我的计算机上安装了mongo,其mongo shell版本是4.2.1。如何启用我的应用程序以使用mongo?

main.js

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

Meteor.startup(() => {
  // code to run on server at startup

  this.Documents = new Mongo.Collection("documents");

  if(!Documents.findOne()) {
    Documents.insert({title:"my new documents"});
  }

});

1 个答案:

答案 0 :(得分:1)

文档未定义,因为您已将集合分配给this.documents 像普通变量一样定义文档

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

const Documents = new Mongo.Collection("documents");

if(!Documents.findOne()) {
  Documents.insert({title:"my new documents"});
}

export { Documents }

要在控制台中访问Documents,需要将模块导入控制台(就像在文件中一样),除了在控制台中,您可以使用require

require('/path/to/main').Documents

注意:仅当导出Documents时才可能

或者,您可以通过将其分配给windowglobal使其全局:

const Documents = new Mongo.Collection("documents");
window.Documents = Documents;

使用全局变量时,您只需要注意不要用相同的名称命名其他变量,这样您就知道要处理的对象