首页 > 解决方案 > mongodb 如果可能按数字排序,否则按字符串排序

问题描述

我有一个文档,其中属性是一个字符串,其中部分文档可以转换为数字。如果可能的话,我想按字符串对结果进行排序。我正在使用聚合的排序阶段

有我的示例文档:

   {
     "TestName":"...",
     "Status":"...",
     "Parameter":"..." //Its a string when at part of the documents can be converted into a number
     "Steps":[
        {
           "LowLimit":"X",
           "HighLimit":"Y",
           "Result":"Z"
        },
        {
           "LowLimit":"X",
           "HighLimit":"Y",
           "Result":"Z"
        }
     ]
  },

我实际上并没有尝试不同的方法来实现这一点<因为我没有找到关于该问题的适当信息。

我只尝试这个总是按字符串值排序:

...
 new BsonDocument("$sort", 
 new BsonDocument("Parameter", 1))

在同样的注意和类似的问题上,我还想在项目阶段计算结果的平均值,前提是结果可以转换为数字,默认情况下它们也是字符串。

类似的东西(在项目阶段)

 ...
    Avg:{
    $avg:$Steps.Results
   }

标签: mongodbaggregation-framework

解决方案


推荐阅读