簡體   English   中英

Cursor 中基於 MongoDB 的分頁,對 2 個屬性進行排序

[英]Cursor based pagination in MongoDB with sorting on 2 properties

我的最終目標是在 MongoDB 中實現基於 cursor 的分頁,同時對 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}}

謝謝你的幫助。

您可以使用 跳過方法

db.getCollection('collection').find({}).sort({vip: -1, cost: -1}).skip(2).limit(2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM