从PHP的大型MongoDB集合中选择每个第N个元素?

blp*_*rnt 9 php mongodb

我有一个包含~4M元素的MongoDB集合.

我想抓住X个这些元素,在整个集合中均匀分布.

例如,从集合中获取1000个元素 - 每4000行一个元素.

现在,我将整个集合放在游标中,然后只编写每个第N个元素.这给了我我需要的东西,但巨大的收藏品的原始负载需要很长时间.

是否有捷径可寻?现在我猜测的方法是在增量索引属性上使用模数进行JS查询.这个的PHP实现:

db.collection.find({i:{$mod:[10000,0]}})

但这似乎可能需要花费同样多的时间来运行查询.

Art*_*pov 0

我认为主要问题是集合可以分布在服务器上,因此您必须迭代整个集合。