【发布时间】:2011-07-28 08:57:38
【问题描述】:
我可能遗漏了一些东西,因为我还在学习插件和 MongoDB,但我需要帮助来分页集合。
我有一个包含名称列表的集合。
下层牛肉
鸡胸肉 6oz
鸡胸肉 8oz
鸡胸肉 8oz
鸡胸肉 8oz
鸡胸肉随机
鸡腿
鸡里脊
鸡大腿
犹太盐
我在“ProductName,_id”上创建了一个复合索引。
我运行这个查询:
db.ProductGuideItem.find( { ProductName: { $gt: "Chicken Breast 8oz" } } ).sort({ProductName:1,_id:1}).limit(3);
请注意,有 3 件“8oz 鸡胸肉”商品。
如果我运行该查询,我会得到...
鸡胸肉随机
鸡腿
鸡里脊
如果我正在分页并从顶部开始。查询将丢失 另外 2 个“鸡胸肉 8 盎司”。
所以如果每个页面只能有 3 个项目并且我想看到第 2 页,那么我应该看到..
鸡胸肉 8oz
鸡胸肉 8oz
鸡胸肉随机。
但我不是。它会到最后一块 8 盎司的鸡胸肉,然后从那里开始。
有没有办法解决这个问题?
另外,如果列表以相反的方式排序,我该怎么做?
【问题讨论】:
-
您的主张是什么?返回的三行非常好,并且与您的查询相匹配,或者您期望什么以及为什么?
-
首先放松一下。显然我没有正确解释这一点。如果每页只能有 3 个项目,我想看第 2 页,那么我应该看到 8 盎司鸡胸肉、8 盎司鸡胸肉、随机鸡胸肉。但我不是。它会去最后一个 8 盎司的鸡胸肉,然后从那里开始。
-
@Donny,IMO,RestRisiko 在这里有一点(也许不是说得那么微妙,但让我们把它留在那里)。您本可以在邮件列表上发布您的问题的链接,以便可能想在这里回答您的人可以首先检查他们计划发布的答案是否在其他地方没有建议。
-
@RestRisiko:即使这个问题已经在其他地方得到了回答,再次提问也是完全有效的,除非它已经在这里被提问和回答过。如果您发现再次阅读相同的问题很无聊,则无需单击链接。 StackOverflow 旨在成为一个社区资源,至少在概念上,这些问题旨在为不仅仅是 OP 提供答案,并且说诸如“在邮件列表上查看您的问题的答案”之类的内容并不是特别有助于实现这一目标。
-
@Donny V.:我同意@Adam Robinson 的观点。只要这里还没有被问到,你就可以在这里问。我不认为我们欠任何其他网站...
标签: mongodb pagination