mongodb Meteor collection find()不检索任何数据

jjjwad0x  于 2023-03-07  发布在  Go
关注(0)|答案(3)|浏览(141)

我正在做一个流星教程:https://www.meteor.com/tutorials/blaze/collections
我定义了一个集合,

Tasks = new Mongo.Collection("tasks");

我已经添加了两个项目,一个直接从meteor mongo命令行,另一个使用:

Tasks.insert({ text: "Testing JS", createdAt: new Date() });

下面是在后端运行db.tasks.find()的结果:

{ "_id" : ObjectId("559e9569abbb64fe1d5fd89a"), "text" : "Hello world!", "createdAt" : ISODate("2015-07-09T15:38:17.742Z") }
{ "_id" : "obRN8Rcssa9yJqXzA", "text" : "Testing JS", "createdAt" : ISODate("2015-07-09T17:00:13.285Z") }

但是当我运行Tasks.find({});在前端,我得到了空的结果。2它只给了我一个很长的JSON,但是没有来自数据库的数据。

ddrv8njm

ddrv8njm1#

在meteor中,您可以通过调用fetch来查看光标返回的文档。例如:

console.log(Tasks.find().fetch());
vsaztqbk

vsaztqbk2#

查看您的代码,您没有发布任何内容:

if (Meteor.isServer) {
  Meteor.publish("tasks", function () {
    console.log(Tasks.find());
  });   
}

必须是

if (Meteor.isServer) {
  Meteor.publish("tasks", function () {
    console.log(Tasks.find());
    return Tasks.find();
  });   
}

或者如果你使用自动发布的话就删除它。

oug3syen

oug3syen3#

是否在前端.js中导入了集合的.js文件?

import { Tasks } from '/your_path_goes_here/filename_goes_here.js';

如果不导入,请尝试以下操作,
1.添加发布方式
if (Meteor.isServer) { Meteor.publish('tasks', function task() { return Task.find({}); }); }
1.在Front-End .js中订阅它
Meteor.subscribe('task');

相关问题