我是Meteor的新手。我有一段时间以来一直坚持这个问题。我可以成功地将项目添加到集合中并在控制台中完整地查看它们。但是,我无法访问.js文件中的所有读取操作。
也就是说,我可以将.find()和.findOne()与空参数一起使用。但是当我尝试添加.sort或参数时,我收到一个错误,告诉我该对象未定义。
已启用自动发布,因此我不确定问题所在。这些电话是直接在客户端进行的。
这会返回一些内容 -
Template.showcards.events({
"click .play-card": function () {
alert(Rounds.find());
}
})
这不会返回任何内容 -
Template.showcards.events({
"click .play-card": function () {
alert(Rounds.find().sort({player1: -1}));
}
})
抱歉新手问题。提前谢谢。
答案 0 :(得分:0)
Meteor的集合API与mongo shell的API有点不同,这对于新用户来说是可以理解的。你需要这样做:
Template.showcards.events({
'click .play-card': function() {
var sortedCards = Rounds.find({}, {sort: {player1: -1}}).fetch();
console.log(sortedCards);
}
});
有关详细信息,请参阅this。另请注意,记录光标(查找结果)可能并不是您想要的。如果要查看文档的内容,则需要fetch。
答案 1 :(得分:0)
Rounds.find().sort({player1: -1})
返回一个光标,因此您需要执行此操作:
Rounds.find().sort({player1: -1}).fetch();
请注意,这会返回Array
个文档对象。所以你会做更像这样的事情:
docs = Rounds.find().sort({player1: -1}).fetch();
alert(docs[0]);