用于批量查询的等效Mongodb习语

时间:2012-04-04 20:20:21

标签: sql scala mongodb batch-file casbah

批量查询mongo集合的最有效方法是什么?例如,在SQL中我会做类似的事情:

SELECT * FROM Foo WHERE id > {{floor}} limit 1000;

我发现我可以按照概述here

做一些事情

但是关于跳过的重大警告让我觉得我不应该使用它。 (假设集合足够大以至于重要)。

除了自动生成的_id字段之外,我的集合还没有任何索引。我不确定是否有办法使用它和$ gt $ lt。

如果重要的话,我会使用Casbah驱动程序,以防内置秘密酱。

1 个答案:

答案 0 :(得分:2)

该SQL查询到mongo的字面翻译是

db.foo.find({"id": {"$gt": floor}}).limit(1000)

如果您使用该列而不是名为id的列,则_id字段上的索引(或id上的默认索引)可以提供此查询。

limit()没有性能问题,但skip()对于非常大的值可能表现不佳,因为服务器在开始向您返回结果之前需要迭代大量记录。< / p>