我正在使用$ 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);
});
先谢谢了。