Navicat 部落格

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

在 MongoDB 支援定序的系列中,我們一直在學習如何使用 Navicat for MongoDB GUI 管理和開發工具在 MongoDB 中指定定序。第 1 部分簡要介紹了定序的概念,涵蓋 MongoDB 中控制定序的欄位,並詳細介紹了定序文件的前三個欄位,即「地區設定」、「大小寫層級」和「大小寫優先」。今天的文章將描述其他欄位。

強度(strength)

下一個欄位「強度」是要執行比較的層級。

可能的值包括:

  • Primary:定序僅執行基本字元的比較,略過其他差異,例如重音符號和大小寫。因此,å、ä 和 a 都將被視為同一個字元。
  • Secondary:定序執行比較直到次要差異,例如重音符號。也就是說,基本字元+重音符號。請注意,基本字元之間的差異優先於次要差異。
  • Tertiary:定序執行比較直到第二級差異,例如大小寫和字母變體。也就是說,定序執行基本字元、重音符號以及大小寫和變異數的比較。雖然英語只有大小寫變異數,但有些語言有不同但等同的字元,即簡體中文與繁體中文。在此層級,基本字元之間的差異優先於重音符號,而重音符號優先於大小寫和變異數差異。
  • 這是預設層級。

  • Quaternary:僅限於特定用例,以便在層級 1 到 3 略過標點符號時考慮標點符號或處理日文文字。
  • Identical:限於平局決勝者(Tie-breaker)的特定用例。

在 Navicat 中,你可以在下拉式清單中找到所有上述的值:

數值排序(numericOrdering)

這個旗標用於判斷是將數字字串作為數字還是字串進行比較:

  • 如果是「on」,則按數字進行比較; 即「10」大於「2」。
  • 如果是「off」,則按字串進行比較; 即「10」小於「2」。

預設值為「off」。

替代(alternate)

這是另一個簡單但功能強大的欄位,用於判斷排序是否應將空格和標點符號視為基本字元以進行比較。

它只有兩個可能的值:

  • non-ignorable:空格和標點符號被視為基本字元。
  • shifted:空格和標點符號不被視為基本字元,僅在強度層級別大於 3 時辨別。

最大變數(maxVariable)

當「替代」設定為「shifted」時,這個欄位判斷直到哪些字元可以被略過。當「替代」設定為「non-ignorable」時,它不起作用。

它只有兩個可能的值:

  • punct:白色空格和標點符號都是「可略過的」,即不被視為基本字元。
  • space:只有空格是「可略過的」,即不被視為基本字元。

逆向(backwards)

這是另一個旗幟。這個判斷帶有重音的字串是否從字串的後面排序,例如使用一些法文字典排序。

  • 如果是「on」,則從後到前進行比較。
  • 如果是「off」,則從前到後進行比較。

預設值為「off」。

正規化

最後一個欄位是一個旗幟,用於判斷是否檢查文字是否需要正規化並執行正規化。通常,大多數文字不需要正規化處理。

  • 如果是「on」,檢查是否完全正規化並執行正規化以比較文字。
  • 如果是「off」,則不檢查。

預設值為「off」。

總結

現在我們已經涵蓋了所有定序的欄位。在未來的文章中,我們將學習如何將定序套用於 MongoDB 中的排序作業。

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