【发布时间】:2023-04-01 14:35:01
【问题描述】:
我在我的 MongoDB 集合上使用以下查询,这需要一个多小时才能完成。
db.collection.find({language:"hi"}).sort({_id:-1}).skip(5000).limit(1)
我试图在一批 5000 中获取结果,以便按升序或降序处理语言字段中具有“hi”作为值的文档。所以我使用这个查询,每次通过增加“skip”值来跳过处理过的文档。
此集合中的文档数量刚刚超过 2000 万。 “语言”字段的索引已创建。 我使用的 MongoDB 版本是 2.6.7
这个查询有没有更合适的索引可以更快的得到结果?
【问题讨论】:
-
并非如此。你“应该”问的是“有没有更好的方法来分页我的结果”并解释你的实际用例而不是假设的用例。
-
我正在尝试获取一批 5000 的结果,以便在语言字段中以“hi”作为值的文档按升序或降序处理。所以我正在使用这个查询,我每次都通过增加“跳过”值来跳过处理过的文档。
-
那里。现在看看你问的问题有多少描述性。请编辑您的问题以包含该内容以及更合适的标题。这是个好问题。你问的是一个可怕的问题。所以你一次只想要 5000 个,然后继续下一批,以此类推,对吗?
-
是的,你完全正确。
-
为您编辑。当你没有问正确的问题时,看看你得到的答案。这是一个例子。是的,有一个解决方案。给我一点时间。
标签: mongodb mongodb-query