【发布时间】:2019-09-10 15:12:34
【问题描述】:
我的数据如下所示:
{ _id: 1, x: "abc", y: "def"}
{ _id: 2, x: "abc", y: "efg"}
{ _id: 3, x: "xxx", y: "xxx"}
我的查询如下所示:
db.col.aggregate([{ $sort: { x: 1 } },{ $skip: 0 } ])
当我运行该查询时,我会按顺序查看所有内容:1、2、3
当我将skip 更改为 1 时,我得到 1,3
当它进行排序时,它是否在内部认识到文档 1 和 2 是按相同的值排序的,并且在跳过时使用不同的方法来选择要使用的方法?有没有办法解决这个问题?
【问题讨论】:
-
将
$sort与_id字段或一些时间戳字段一起使用。否则两个值(abc)都相同。{ $sort: { x: 1, _id: 1 } } -
这行得通,但我希望避免或更好地理解原因,但我认为这就是我必须要做的
标签: mongodb sorting aggregation-framework