Javascript MongoDB:从集合中提取多个随机文档

Javascript MongoDB:从集合中提取多个随机文档,javascript,ruby-on-rails-3,mongodb,mongomapper,Javascript,Ruby On Rails 3,Mongodb,Mongomapper,我需要从MongoDB的集合中提取多个随机文档。我不想为我的文档添加新密钥或使用map reduce。有什么建议吗?您可以生成范围从0到集合项目计数的随机跳过,然后加载文档: db.items.find().skip(randonNumberHere).limit(1); 但是,这种方法对于大型集合的效率越来越低,因为每次使用skip mongodb时,都会从第一个迭代到跳过项。如果集合不是非常大 all_ids = MyModel.collection.distinct(:_id) @my_

我需要从MongoDB的集合中提取多个随机文档。我不想为我的文档添加新密钥或使用map reduce。有什么建议吗?

您可以生成范围从0到集合项目计数的随机跳过,然后加载文档:

db.items.find().skip(randonNumberHere).limit(1);

但是,这种方法对于大型集合的效率越来越低,因为每次使用skip mongodb时,都会从第一个迭代到跳过项。

如果集合不是非常大

all_ids = MyModel.collection.distinct(:_id)
@my_models = MyModel.find(all_ids.sample(100)) # or .shuffle.take(100) in 1.8.7

我听到了!我认为应用程序级别的选项不是很好。幸运的是,MongoDB票证跟踪器中有一个。如果本机实现,它可能是最有效的选择。(如果您想要该功能,请投票支持。)