В mon goose есть ли разница между .sort (). Skip () и .skip (). Sort ()? - PullRequest
1 голос
/ 14 января 2020

Как видно из названия, есть разница .sort().skip() и .skip().sort()?

Может ли mongoose справиться с этим?

1 Ответ

2 голосов
/ 14 января 2020

Нет, разницы нет. .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); для отслеживания этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...