猫鼬。随机

时间:2018-04-01 02:57:25

标签: javascript mongoose populate mongoose-populate

可以'随机填充'吗?

示例

.populate({
    path: 'path',
    options: {limit: 2}
});  

“示例”始终返回相同的2个项目。始终是阵列中的最后两个项目 是否可以使用.populate()返回随机项?怎么做?

1 个答案:

答案 0 :(得分:1)

用户javascript' Math.randomMath.floor

  

random()方法返回0(含)之间的随机数   但不包括1(独家)。

更多详情和示例:https://www.w3schools.com/js/js_random.asp

所以120之间有一个随机限制:

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