Navicat 部落格

2018 年 10 月 3 日,由 Robert Gravelle 撰寫

定序包含一組用於字串比較的特定於語言的規則,例如字母大小寫和重音標志的規則。一般的排序適用於由字母和數字字元組成的簡單項目,但是一旦包含一些特殊字元,例如 @、#、$、%(等)和 è、é、ê、ö(等等),你必須指定自己的定序。

MongoDB 版本 3.4或以上支援定序,因此你可以為集合、檢視、索引或支援定序的某些作業(例如 find() 和 aggregate())指定定序。

今天的文章將簡介定序的概念,涵蓋 MongoDB 中控制定序的欄位,以及如何使用 Navicat for MongoDB GUI 管理和開發工具在 MongoDB 中指定定序。此外,我們今天將詳細介紹定序文件的前三個欄位,而其餘的將留待第 2 部分中介紹。

定序文件欄位

若要使用預設選項以外的定序選項,你可以指定一個定序文件。它由以下欄位組成:

{
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

你可以在 Navicat 中的「定序」索引標籤卡上看到相同欄位:

在以上所有欄位中,只有「地區設定」欄位是必要的,所有其他定序欄位都是選擇性的。

現在讓我們仔細看看每個欄位,好好地了解每個欄位允許的值:

  • 地區設定(locale):

    地區設定識別特定使用者社群,即一組共享相似文化和語言習語的個體。實際上,社群是所有說同一種語言並生活在同一個國家的人的相交。例如,法國的法語地區與加拿大的法語地區不同。因此,「fr」是法國法語的地區設定代碼,而「fr_CA」是加入了加拿大的 2 個字元國家/地區碼。雖然這兩個地區有許多相似之處,但亦有一些差異,例如貨幣,法國使用歐元(€),而加拿大使用美元($)。

    正如你想像的那樣,有許多地區設定代碼。「地區設定」下拉式清單有許多更常見的代碼。清單中的第一項「simple」指定了簡單的二進位比較。你也可以在下拉式清單的文子方塊輸入你想要的代碼。

    語言之間的排序差異

    關於排序,每種語言都有自己的排序順序,有時甚至有多個排序順序。以下是在不同的地區設定下排序相同的名稱:

    • English (en): bailey, boffey, böhm, brown
    • German (de_DE): bailey, boffey, böhm, brown
    • German phonebook (de-DE_phonebook): bailey, böhm, boffey, brown
    • Swedish (sv_SE): bailey, boffey, brown, böhm
  • 大小寫層級(caseLevel):

    這個旗標用於判斷是否包含大小寫比較。

    • 如果是「on」,則包括大小寫比較。
    • 如果是「off」,則不包括大小寫比較。
  • 大小寫優先(caseFirst):

    這個欄位用於判斷案例大小寫的排序順序。有效值包括:

    • 「upper」:大寫字母排序在小寫之前。
    • 「lower」:小寫字母排序在大寫之前。
    • 「off」:預設值。類似“lower”,但略有不同。

總結

在今天的文章中,我們了解了定序的概念,涵蓋了 MongoDB 中控制定序的欄位,並學習了如何使用 Navicat for MongoDB GUI 在 MongoDB 中指定定序。熟悉了前三個定序文件欄位的知識後,我們將在第 2 部分繼續討論最後的五個欄位。

Navicat 文章
頻道記錄
分享
部落格封存檔