Как отсортировать результат запроса mongodb в порядке возрастания возраста, без поля createAt?(от нового к старому) - PullRequest
0 голосов
/ 31 января 2019

Когда вы делаете запрос mongodb, вы обычно получаете результаты в порядке убывания возраста (от старого к новому).Как я могу получить его в порядке возрастания?

Я знаю, что могу сохранить метку времени созданного At и выполнить для этого запрос

  .sort({createdAt:-1})

, но сохранение метки времени cretedAt по отдельности, когда информация уже присутствует в _id, выглядит следующим образом:overkill.

Есть ли способ получить результаты в возрастающем порядке возраста (от нового к старому), не используя метку времени madeAt?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019
Отметка времени

уже сохранена в поле _id.Так что если вы хотите отсортировать документы от нового к старому.Вы можете сделать это следующим образом -

sort({_id:-1})

0 голосов
/ 01 февраля 2019

Если вы имеете в виду естественный порядок , который отражает порядок вставки документов.

Рассмотрите следующий запрос:

db.trees.insert( { _id: 1, name: "oak"} )
db.trees.insert( { _id: 2, name: "chestnut"} )
db.trees.insert( { _id: 3, name: "maple"} )
db.trees.insert( { _id: 4, name: "birch"} )

Следующий запрос возвращает документыв естественном порядке:

db.trees.find().sort( { $natural: 1 } )
[
 { "_id" : 1, "name" : "oak"}
 { "_id" : 2, "name" : "chestnut"}
 { "_id" : 3, "name" : "maple"}
 { "_id" : 4, "name" : "birch"}
]

Однако при удалении операций освобождают место, которое затем занимают вновь вставленные документы, тогда естественный порядок документов не будет отражать порядок вставки.

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