今天來講講文件裡的欄位是支援哪些資料型別以及其使用細節吧!
總共支援的資料型別有:
Array 裡面可以儲存除了 Array 以外其他型別的任何值,Array 之間的排序是比較其中的元素,若是比較的元素都相同,則會比較長度,比較短的會被視為比較小。例如:[1, 2, 3] < [1, 2, 3, 1] < [2]
。
Boolean,單純的布林值,排序上 false < true
。
Bytes 可以用來儲存檔案,受到文件大小本身的限制,Byte 資料型別最多只能儲存 1 MiB - 89 bytes = 1,048,487 bytes
的檔案。Bytes 之間的排序是一個個 Byte 去比較。
Date and time,是一個包含日期與時間的資料型別,若是沒有指定時間會使用預設的 00:00:00。在排續依照時間先後順序進行,越早則越小。在 Date and time 之間的比較,精確度比較到微秒為止。
Floating-point number,即所謂的64 bit 雙精度浮點數。排序沒有意外的使用數字大小為依據。
Geographical point,這是一個滿有趣的資料型別,專門儲存經緯度。在排序上會先比較表示南北地理位置的緯度(latitude),再比較表示東西地理位置的經度(longitude)。
Integer,即 64bit 的整數,能夠儲存 -2^63 ~ 2^63 - 1 之間大小的整數。排序理所當然是依照數字大小。
Map,即儲存鍵值對(key-value pairs)的資料型別。裡面儲存的資料會依照鍵名做排序,像是就算我們是以 {c: “foo”, a: “bar”, b: “qux”}
寫入,在資料庫仍會儲存為 {a: “foo”, b: “bar”, c: “qux”}
。 Map 之間的排序會先比較鍵名,再比較數值,會先比較第一組的鍵值對,如果都相同再往下一組去比對,以此類推。
Null,我還沒研究到作何用途,官方在資料型別的文件尚未特別表述,等之後研究到會再補充到這。
Reference,指向某個文件位置,官方在資料型別的文件尚未特別表述,等之後研究到會再補充到這。Reference 之間的比較是依據集合與每個文件的 ID 。
Text string,用來儲存大量文字。同 Bytes,最多可以儲存 1 MiB - 89 bytes = 1,048,487 bytes
大小的文字量。在 Text string 之間的排序是會以 UTF-8 編碼的 byte 去比較。
今天因為上台北出差,壓縮到了發文的時間,三篇發文品質可能都較為簡陋,之後會再找時間進行補充與編修。本篇可能會在研究有關的應用情境後,將其補充進來。