猫鼬:$ sort在许多语言中不区分大小写

时间:2019-02-19 14:08:56

标签: mongodb sorting mongoose

我有一个查询,我需要对许多不同的语言使用不区分大小写的$sort。我读到了metadata sort的内容,但无法理解它在查询中的工作方式,或者如何使排序对许多语言(utf-8)不区分大小写都有效

我的查询

  let sort;
  if (sortDetailServices.field === "employee.name") {
    sort = {
      "employee.name":  sortDetailServices.status ? 1 : -1
    }
  }
     Schedule.aggregate([{
          '$match': findTerm
        },
        {
          '$facet': {
            'totalizer': [{
                '$group': {
                  '_id': '$service.id',
                  'count': {
                    '$sum': 1
                  },
                  'totalValue': {
                    '$sum': '$value'
                  },
                  'totalComission': {
                    '$sum': '$comissionValue'
                  }
                }
              },
              {
                '$group': {
                  '_id': null,
                  'storesCount': {
                    '$push': {
                      'store': '$_id',
                      'count': '$count'
                    }
                  },
                  'totalValue': {
                    '$sum': '$totalValue'
                  },
                  'totalServices': {
                    '$sum': '$count'
                  },
                  'totalComission': {
                    '$sum': '$totalComission'
                  }
                }
              }
            ],
            'data': [{
                '$project': {
                  'employee.name': 1,
                  'value': 1,
                  'scheduleStart': 1,
                  'scheduleEnd': 1,
                  'comissionValue': 1,
                  'status': 1,
                  'paymentMethod': 1
                }
              },
              {
                '$sort': sort
              },
              {
                '$skip': req.body.limit * req.body.page
              },
              {
                '$limit': req.body.limit
              }
            ],
          }
        }
      ]
    ...

1 个答案:

答案 0 :(得分:0)

更新:截至目前,mongodb具有不区分大小写的索引:

更新:此答案已过期,3.4将具有不区分大小写的索引。有关更多信息,请查看JIRA https://jira.mongodb.org/browse/SERVER-90

不幸的是,MongoDB尚不区分大小写的索引:https://jira.mongodb.org/browse/SERVER-90,并且该任务已被推迟。

这意味着排序当前不区分大小写的唯一方法是实际创建一个特定的“小写”字段,然后复制所讨论的排序字段的值(当然是小写)并对其进行排序。

相关问题