Нет, разницы нет. .sort()
всегда применяется до .skip()
, что имеет смысл, поскольку вы хотите получить результаты с определением c, чтобы иметь возможность пропустить некоторые из них предсказуемым образом.
Приведенные ниже запросы будут возвращать разные результаты, поскольку .skip()
и .sort()
будут переупорядочены для запроса и сохранены в указанном порядке для .aggregate()
:
let results = await Test.aggregate([{ $skip: 2 }, { $sort: { a: 1 } }]);
let results2 = await Test.find().skip(2).sort({ a: 1 });
Внутренний второй синтаксис просто создает объект . Параметры поиска () , где порядок ключей не имеет значения:
Mongoose: tests.find({}, { skip: 2, sort: { a: 1 }, projection: {} })
или
Mongoose: tests.find({}, { sort: { a: 1 }, skip: 2, projection: {} })
Вы можете добавить mongoose.set('debug', true);
для отслеживания этого.