我找到了以下软件包,使用 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);
});
});
答案 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);
});