批量查询mongo集合的最有效方法是什么?例如,在SQL中我会做类似的事情:
SELECT * FROM Foo WHERE id > {{floor}} limit 1000;
我发现我可以按照概述here
做一些事情但是关于跳过的重大警告让我觉得我不应该使用它。 (假设集合足够大以至于重要)。
除了自动生成的_id字段之外,我的集合还没有任何索引。我不确定是否有办法使用它和$ gt $ lt。
如果重要的话,我会使用Casbah驱动程序,以防内置秘密酱。
答案 0 :(得分:2)
该SQL查询到mongo的字面翻译是
db.foo.find({"id": {"$gt": floor}}).limit(1000)
如果您使用该列而不是名为id
的列,则_id
字段上的索引(或id
上的默认索引)可以提供此查询。
limit()
没有性能问题,但skip()
对于非常大的值可能表现不佳,因为服务器在开始向您返回结果之前需要迭代大量记录。< / p>