有可能“随机填充”吗?
示例
.populate({
path: 'path',
options: {limit: 2}
}); “示例”总是返回相同的2项。总是数组中的最后两个项。
是否可以使用.populate()返回随机项?怎么做呢?
发布于 2018-04-01 04:50:16
用户javascript‘Math.random和Math.floor
随机()方法返回一个从0(包括在内)到但不包括1(独占)的随机数。
更多细节和示例:random.asp
因此,要在1和20之间有一个随机限制:
var myLimit = Math.floor(Math.random() * (20 - 1) + 1);
.populate({
path: 'path',
options: {limit: myLimit}
}); 编辑
如果希望每次返回2随机项,请使用skip:
var myRandom = Math.floor(Math.random() * (20 - 1) + 1);
.populate({
path: 'path',
options: {limit: 2, skip:myRandom}
}); 但是,这将从第一个20中选择两个随机记录,更准确地说,您需要对所有记录进行计数,然后在1和该计数之间生成一个随机数:
yourModel.count({}, function( err, count){
var myRandom = Math.floor(Math.random() * (count - 1) + 1);
// your old code ..
.populate({
path: 'path',
options: {limit: 2, skip:myRandom}
});
})https://stackoverflow.com/questions/49594365
复制相似问题