您可以看到标题,.sort().skip()
和.skip().sort()
有区别吗?
mongoose
处理吗?
答案 0 :(得分:2)
不,没有区别。 .sort()
总是在之前应用于.skip()
,这很有意义,因为您希望确定性地获得结果,以便能够以可预测的方式跳过其中的一些结果。
以下查询将返回不同的结果,因为.skip()
和.sort()
将重新排序以进行查询,并按指定的顺序保持.aggregate()
的使用:
let results = await Test.aggregate([{ $skip: 2 }, { $sort: { a: 1 } }]);
let results2 = await Test.find().skip(2).sort({ a: 1 });
内部第二种语法只是构建.find() options的对象,其中键的顺序无关紧要:
Mongoose: tests.find({}, { skip: 2, sort: { a: 1 }, projection: {} })
或
Mongoose: tests.find({}, { sort: { a: 1 }, skip: 2, projection: {} })
您可以添加mongoose.set('debug', true);
进行跟踪。