Mongo $ sort如何工作?

时间:2019-10-24 06:18:54

标签: java mongodb sorting mongodb-query aggregation-framework

在我的收藏中

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

这些类型的条目都已存在,我正在对“ subOrderId”字段desc中进行排序

请说明在数字字符串{numericOrdering: false}情况下它如何工作

2 个答案:

答案 0 :(得分:1)

docs开始,它非常简单:

  

可选。确定将数字字符串比较为数字还是作为字符串的标志。

     

如果为true,则比较为数字;即“ 10”大于“ 2”。

     

如果为false,则比较为字符串;否则为false。即“ 10”小于“ 2”。

     

默认为false。

如果将其设置为false,则会进行“正常”字符串比较,这意味着以“ 1”开头的任何内容都比以“> 2”开头的任何内容(例如“ 19519519512” <“ 2”)要小。 / p>

答案 1 :(得分:-1)

尝试此查询

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