У меня есть коллекция MongoDB с объектами, свойство _id которой является строкой.
Я хочу выполнить операцию .find () для этой коллекции, выполнить .sort () для возвращенного курсора,Затем операция .toArray () выдаст мне массив документов в определенном порядке.Однако я не хочу извлекать все эти документы, а только те, которые находятся между ними.
Теперь я понимаю, что могу выполнить .toArray (), получить все свои результаты в массиве, а затем выбрать интервал между двумя документами, но это будет стоить слишком много ресурсов.Я хочу, если возможно, выбрать этот интервал ПЕРЕД выполнением .toArray () или вообще наиболее ресурсосберегающим способом.
То, что я пытаюсь выполнить, является альтернативой .limit ()и .skip () (paging), но точно определяя интервал, предоставляя _id для «начального» и «конечного» документа.
Например, если .find().sort({_id: 1}).toArray()
дает:
{_id: "a", a: "First entry"},
{_id: "bar", a: "Third entry"},
{_id: "bar2", a: "Fourth entry"},
{_id: "bar3", a: "Fifth entry"},
{_id: "bar4", a: "Sixth entry"},
{_id: "foo", a: "SEcond entry"}
Мне нужно что-то вроде find().sort({_id: 1}).allAfter({_id: "bar"}).allBefore({_id: "bar4"}).toArray(...);
Чтобы дать мне:
{_id: "bar2", a: "Fourth entry"},
{_id: "bar3", a: "Fifth entry"},