Как работает Mongo $ sort? - PullRequest
       4

Как работает Mongo $ sort?

0 голосов
/ 24 октября 2019

в моей коллекции

{"subOrderId":"985409601"},
{"subOrderId":"87596401"},
{"subOrderId":"871997501"},
{"subOrderId":"871997401"},
{"subOrderId":"871997401"}

эти типы записей есть, и я применяю сортировку в полях "subOrderId" desc

Пожалуйста, объясните, как это работает в случае числовой строки{numericOrdering: false}

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Это довольно прямолинейно, из документов :

Дополнительно. Флаг, который определяет, сравнивать ли числовые строки как числа или как строки.

Если true, сравнивать как числа;т. е. «10» больше, чем «2».

Если false, сравнить как строки;т. е. «10» меньше, чем «2».

Значение по умолчанию - false.

Когда установлено значение false, выполняется «нормальное» сравнение строк, что означает все, что начинается с«1» будет «меньше», чем все, что начинается с «> 2», например «19519519512» <«2». </p>

0 голосов
/ 24 октября 2019

Попробуйте этот запрос

db.DbCollection.aggregate( [
  {$addFields: {
      sortData: { $toInt: "$subOrderId" },
   }},
  { $sort : { sortData : 1} },
  {$project: {subOrderId:1}}
 ])
...