簡體   English   中英

如何在 mongodb (3.4) 中實現不區分大小寫的排序

[英]How to implement a case insensitive sort with aggregate in mongodb (3.4)

我正在嘗試在 MongoDB 中實現排序。 但是我遇到了一個問題,我的排序首先包括大寫字母 AZ 文本,然后是小寫字母。 我不想要他們。 我希望排序獨立於案例。 這是我的查詢,

var partnerCollection = [
      from: "courses",
      localField: "_id",
      foreignField: "partnerId",
      as: "courses"
    } },
    {
        $project:
        {
            "_id":1,
            "partnerName":1,
            "phone":1,
            "email":1,
            "courses.courseName": 1,
            "courses.courseType":1,
        }
    },
    {
        $match: findUserDataCondition
    },
    { $sort: { "partnerName" : 1 } },
    { $skip: start },
    { $limit: length }
];

如果我用 partnerName 排序,我得到的結果是 ABC、DEF、EFG、bcd、cde

我的預期結果是 ABC、bcd、cde、DEF、EFG。 請幫助我整理這些問題

幸運的是,自 MongoDb v3.4以來,引入了排序規則選項來指定特定於語言的字符串比較規則:

db.partnerCollection.aggregate([
  ...
],
{
  collation: {
      locale : "en"
  }
})

注意:如果您還指定caseFirst = "upper"參數,則大寫字符串將排在小寫之前。

排序規則 caseFirst = "upper"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM