У меня есть коллекция Монго с документами, как ниже:Найти документ с его окружением в MongoDB
{
_id: [ObjectId]
writeDate: [DateTime]
publishDate: [DateTime]
...
}
Я обычно список отображения таких документов сортировки по publishDate
первым, а затем на writeDate
.
Теперь, когда я получаю заданный документ _id
Мне нужно получить список, содержащий: 2 предыдущих документа, этот документ и 2 следующих документа. Так оно и должно выглядеть следующим образом:
[1,2,4,3,6,7,8,5,9,0]
если данный идентификатор 6 я должен получить
[4,3,6,7,8]
и если идентификатор 4 я должен получить
[1,2,4,3,6]
Дело в том, что публиковать даты могут быть одинаковыми (тогда я дополнительно сортирую по writeDate
), поэтому, я полагаю, я не могу просто заказать $gte
и $lte
с датой данного документа. А также _id
не гарантируются.
У вас есть ключи к тому, как это сделать?
Там что-то я не понимаю, в вашем вопросе: вы говорите, что вы не можете сортировать основе по дате, поскольку несколько документов могут иметь одну и ту же дату. Если нет порядка сортировки, нет таких вещей, как следующие два и два предыдущих документа. Или вы сортируете свои документы по '_id'? –
Отредактировал мой вопрос. Я имел в виду, что 'publishDate' может быть одинаковым на нескольких документах, поэтому у меня есть orderAsc (publishDate) и orderAsc (writeDate). –
Можно ли дублировать даты публикации и записи? – WiredPrairie