如何使用猫鼬获取随机记录?

时间:2017-01-20 16:58:47

标签: javascript node.js mongodb

我找到了以下软件包,使用 mongoose 获取随机记录的JSON数组。

https://www.npmjs.com/package/mongoose-random

我希望它使用特定字段返回三个随机记录。我尝试过这个,但它没有用。

app.get('/get/random/song/:language/:gender', function (req, res) {

  var fields = { lang: req.params.language, gender: req.params.gender };
  var filter = { };
  var options = { skip: 3, limit: 3};
  Song.findRandom(filter, fields, options, function (err, songs) {
    res.json(songs);
  });
});

2 个答案:

答案 0 :(得分:2)

如今,您可以像这样使用aggregate

this.aggregate([ { $match: { "condition1" : "to_match" , "condition2" : "to_match" } } , { $sample: { size : 3 } } ]);

$sample大小是您将获得的随机行数

答案 1 :(得分:0)

我使用包装(见上文)。

Song.findRandom({ gender: req.params.gender, lang: req.params.code })
    .select({ artist: 1 })
    .limit(parseInt(req.params.limit)).exec(function (err, songs) {
    res.json(songs);
});