MongoDB:查询单个随机文档的最有效方法是什么?

Vio*_*ffe 7 c++ mongodb

我需要随机选择一个集合中的文档(或者 - 从随机定位的"窗口"中获取少量连续文档).我找到了两个解决方案:12.第一个是不可接受的,因为我预计收集量很大,并希望最小化文档大小.第二个似乎无效(我不确定skip操作的复杂性).而在这里,人们可以找到查询文件具有指定索引的一提,但我不知道如何做到这一点(我使用C++驱动程序).

还有其他解决方案吗?哪个效率最高?

Bry*_*isi 1

我曾经遇到过类似的问题。就我而言,我的文档中有一个日期属性。我知道数据集中可能的最早日期,因此在我的应用程序代码中,我将生成 EARLIEST_DATE_IN_SET 和 NOW 范围内的随机日期,然后使用日期属性上的 GTE 查询来查询 mongodb,并将其限制为 1 个结果。

随机日期有可能大于数据集中的最高日期,因此我在应用程序代码中考虑了这一点。

通过日期属性上的索引,这是一个超级快速的查询。