如何从CouchDB加载随机文档(高效而公平地?)>

问题描述 投票:11回答:5

我想从存储在CouchDB数据库中的一组文档中加载随机文档。挑选和装载文件的方法应符合以下要求:

  • 效率:对文档的查找应该高效,最重要的是,加载文档的时间必须不随文档总数线性增长。这意味着不能使用skip

    查询参数。
  • 统一分布:选择应该是真正随机的(尽可能使用标准随机数生成器),每个文档的选择机会均等。

  • 在CouchDB中实现此目的的最佳方法是什么?

我想从存储在CouchDB数据库中的一组文档中加载随机文档。拾取和加载文档的方法应符合以下要求:效率:...

random couchdb
5个回答
24
投票

经过深思熟虑,我想出了一个解决方案。为了完整起见,我将首先展示两种简单的方法并解释为什么它们有缺陷。第三种解决方案是我要使用的解决方案。


2
投票

如果插入效果不是问题,您可以尝试将数字设为非随机数字,例如在创建时将其设置为doc_count + 1。然后,您可以使用随机数0 <= r

最诚挚的问候


1
投票

如何“滥用”视图的约简功能?


0
投票

我同意@meliodas:


0
投票

方法2b:文档中的序号

© www.soinside.com 2019 - 2024. All rights reserved.