猫鼬.随机填充

Mongoose .populate random

可以'populate random'吗?

示例

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

"Example" 总是 return 相同的 2 个项目。始终是数组中的最后 2 项。
是否可以使用 .populate() return 随机物品?怎么做出来的?

用户 javascript' Math.randomMath.floor

The random() method returns a random number from 0 (inclusive) up to but not including 1 (exclusive).

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

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

var myLimit = Math.floor(Math.random() * (20 - 1) + 1);

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

编辑

如果你想每次 return 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}
    }); 
})