如何使用Meteor.js随机拾取数据?

时间:2014-07-29 01:08:30

标签: javascript random meteor

我试图随机获取数据,如下所示,但它似乎只在数据库中选择了第一个。

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;
    }
});

1 个答案:

答案 0 :(得分:0)

您必须使用random作为选择器,而不是查询中的选项,例如:

MiniSudoku.find({random: {$gte: Math.random()}}, {limit: 1});

额外提示:

  1. 您也可以将其重写为MiniSudoku.findOne({random: {$gte: Math.random()}});

  2. 第二次分配值时,您不应使用var关键字。

  3. 您应该为变量分配Math.random()值,因为在极端情况下,您也可以从第二个查询中获取任何内容:)

  4. 从Mongo中选择随机文档可能很棘手,因为他们不像其他数据库那样开箱即用。您可以在https://jira.mongodb.org/browse/SERVER-533

  5. 投票