【发布时间】:2020-02-17 22:22:57
【问题描述】:
我的最终目标是在 MongoDB 中实现基于光标的分页,同时对 2 个属性进行排序。
假设我们有以下集合:
+--------------------------------------+------+-------+
| _id | cost | vip |
+--------------------------------------+------+-------+
| ObjectId("5dae005e665fc34b03c70f8a") | 700 | true | <-- first query
| ObjectId("5dae005e665fc34b03c70f8c") | 50 | true | <-- first query
| ObjectId("5dae005e665fc34b03c70f88") | 1 | true | <-- second query
| ObjectId("5dae005e665fc34b03c70f8b") | 1200 | false | <-- second query
| ObjectId("5dae005e665fc34b03c70f87") | 400 | false |
| ObjectId("5dae005e665fc34b03c70f89") | 300 | false |
+--------------------------------------+------+-------+
我们希望对结果进行排序:{vip: -1, cost: -1},限制为 2。第一个查询将返回第 1 行和第 2 行,结束光标为 (ObjectId("5dae005e665fc34b03c70f8c"))。
有了这些信息,我如何获取接下来的 2 行(即第 3 + 4 行)?
我已尝试使用以下过滤器,但无济于事。
{_id: {$lt: ObjectId('5dae005e665fc34b03c70f8c')}, cost: {$gt: 1}}
感谢您的帮助。
【问题讨论】:
-
我们最终通过在游标中包含成本和vip解决了这个问题,这样我们就可以在后续请求上构造查询。
标签: mongodb