我(好奇地)是一个初学者,第一篇文章。我正在用Meteor创建一个flashcards项目。我有一个名为“cardsets”的数据库,其中包含许多与此类似的文档:
{ "_id" : "asdfg00724",
"setTitle" : "Les animaux",
"vocab" : [
[ "the dog", "le chien" ],
[ "the cat", "le chat" ],
[ "the rabbit", "le lapin" ],
[ "the horse", "le cheval" ] ] }
我要做的是从集合中访问单个文档,并将文档中的每个字段分配给同名变量,并将“vocab”字段作为数组引入。
我有一个/imports/api/cardsets.js,其中包含:
import { Mongo } from 'meteor/mongo';
export const Cardsets = new Mongo.Collection('cardsets');
/server/main.js包含以下行:
import '../imports/api/cardsets.js';
/client/main.js文件包含以下行:
import { Cardsets } from '/imports/api/cardsets.js';
在/client/main.js文件中,我可以直接将新文档“插入”数据库中,因此我知道可以在main.js中访问Cardfiles const:
Cardsets.insert( {language: "Chinese", course: "CHIN102"});
按预期工作。 (这仅用于测试)。但是,我没有用“findOne”做过任何结果:
var asdf = Cardsets.findOne( { _id : "asdfg00724"});
console.log("asdf = "+asdf);
在控制台中生成“asdf = undefined”。
如果我在浏览器控制台中键入“Cardsets.find({})。fetch()”,我会收到错误:“Cardsets未定义。”
我也试过这个:
Cardsets.findOne({ _id : "asdfg00724"}, function(err, document) {
console.log(document.name);
});
但是这会产生一个巨大的错误,其中包含“匹配错误:失败的Match.OneOf,Match.Maybe或Match.Optional验证”文本。
我意识到这可能是一件非常容易让我失踪的事情,但在不停地工作了很多天后,我觉得是时候寻求帮助了。
答案 0 :(得分:0)
find()
和findOne()
不接受回调作为参数,因此您的巨大错误。Cardsets
。实施实际的出版物和订阅后,您将能够查看.ready()
订阅状态,以了解您的数据何时可用。