Mongoose: $ sort нечувствителен к регистру во многих языках - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть запрос, и мне нужно использовать $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 голосов
/ 21 февраля 2019

Обновление: На данный момент mongodb имеет регистронезависимые индексы:

Обновление: Этот ответ устарел, 3.4 будет иметь регистрозависимые индексы.Обратитесь к JIRA для получения дополнительной информации https://jira.mongodb.org/browse/SERVER-90

К сожалению, MongoDB еще не имеет регистронезависимых индексов: https://jira.mongodb.org/browse/SERVER-90, и задача была отодвинута назад.

Это означает, что толькоспособ сортировки без учета регистра в настоящее время состоит в том, чтобы фактически создать определенное поле «в нижнем регистре», скопировав значение (конечно, в нижнем регистре) рассматриваемого поля сортировки и отсортировав его вместо этого.

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