长列表中的猫鼬随机对象

时间:2016-07-12 09:14:01

标签: performance mongoose lodash

由于Mongoose没有随机查找选项,以下哪项更好用? (减少资源消耗)

最小查询,然后是大查询:

Page.find()
    .select('_id')
    .then(function(pages){
        var randomPage = _.sample(pages);
        Page.findOne({id: randomPage._id})
        .populate('comments')
        .then(function(page){...}
    }

一个查询并选择一个随机项:

Page.find()
    .populate('comments')
    .then(function(pages){
        var randomPage = _.sample(pages);
        ...
    }

1 个答案:

答案 0 :(得分:0)

最有效的方法是在聚合管道中使用$sample运算符,这允许从mongodb v3.2开始

DOCS:$sample (aggregation)