最好的方法是使用$ sample从MongoDb获取随机文档,但要确保没有重复

时间:2018-07-24 12:45:47

标签: node.js mongodb mongoose

我正在使用$ sample聚合从MongoDB中获取随机文档,但有时会得到重复的记录。正如MongoDB文档本身https://docs.mongodb.com/manual/reference/operator/aggregation/sample/中所提到的那样,我知道它的局限性。 我意识到,有一些方法可以确保在应用程序级别没有重复项,但是,我所拥有的随机文档少于n个。

是否有一种很好的方法来确保获得n个无重复的随机文档?

let data = [];
descriptor.aggregate([{$sample: {size: 10}}]).cursor({}).exec()
    .on('data', function(randomDescriptor){
        data.push(randomDescriptor);
    })
    .on('end', () => {
        q.resolve(data);
    });

先谢谢了。

0 个答案:

没有答案