我试图随机获取数据,如下所示,但它似乎只在数据库中选择了第一个。
Template.miniSudoku.helpers({
playGame: function(){
var result = MiniSudoku.find({},{random:{$gte:Math.random()},limit:1});
if (result === null) {
var result = MiniSudoku.find({},{random:{$lte:Math.random()},limit:1});
}
return result;
}
});
答案 0 :(得分:0)
您必须使用random
作为选择器,而不是查询中的选项,例如:
MiniSudoku.find({random: {$gte: Math.random()}}, {limit: 1});
额外提示:
您也可以将其重写为MiniSudoku.findOne({random: {$gte: Math.random()}});
第二次分配值时,您不应使用var
关键字。
您应该为变量分配Math.random()
值,因为在极端情况下,您也可以从第二个查询中获取任何内容:)
从Mongo中选择随机文档可能很棘手,因为他们不像其他数据库那样开箱即用。您可以在https://jira.mongodb.org/browse/SERVER-533