1. 程式人生 > >MongoDB 之 資料型別

MongoDB 之 資料型別

一.MongoDB 之 豐富多彩的資料型別世界

首先我們要先了解一下MongoDB中有什麼樣的資料型別:

Object  ID :Documents 自生成的 _id

String: 字串,必須是utf-8

Boolean:布林值,true 或者false (這裡有坑哦~在我們大Python中 True False 首字母大寫)

Integer:整數 (Int32 Int64 你們就知道有個Int就行了,一般我們用Int32)

Double:浮點數 (沒有float型別,所有小數都是Double)

Arrays:陣列或者列表,多個值儲存到一個鍵 (list哦,大Python中的List哦)

Object:如果你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個資料型別就是字典

Null:空資料型別 , 一個特殊的概念,None Null

Timestamp:時間戳

Date:儲存當前日期或時間unix時間格式 (我們一般不用這個Date型別,時間戳可以秒殺一切時間型別)

看著挺多的,但是真要是用的話,沒那麼複雜,很簡單的哦

 

二.MongoDB 之 剖析MongoDB的資料型別

那麼我們根據以上所說的資料型別(撿重點說,別整沒用的)展開說明:

1.Object ID :

複製程式碼
"
_id" : ObjectId("5b151f8536409809ab2e6b26")

#"5b151f85" 代指的是時間戳,這條資料的產生時間
#"364098" 代指某臺機器的機器碼,儲存這條資料時的機器編號
#"09ab" 代指程序ID,多程序儲存資料的時候,非常有用的
#"2e6b26" 代指計數器,這裡要注意的是,計數器的數字可能會出現重複,不是唯一的
#以上四種識別符號拼湊成世界上唯一的ObjectID
#只要是支援MongoDB的語言,都會有一個或多個方法,對ObjectID進行轉換
#可以得到以上四種資訊

#注意:這個型別是不可以被JSON序列化的
複製程式碼

這是MongoDB生成的類似關係型DB表主鍵的唯一key,具體由24個位元組組成:

0-8位元組是時間戳,

9-14位元組的機器識別符號,表示MongoDB例項所在機器的不同;

15-18位元組的程序id,表示相同機器的不同MongoDB程序。

19-24位元組是計數器

 

2.String :

UTF-8字串,記住是UTF-8字串

 

3.Boolean :

true or false 這裡首字母是小寫的

 

4.Integer :

整數 (Int32 Int64 你們就知道有個Int就行了,一般我們用Int32)

 

5.Double :

浮點數 (MongoDB中沒有float型別,所有小數都是Double)

 

6.Arrays :

複製程式碼
{
    "_id" : ObjectId("5b163830993ddc4cd4918ead"),
    "name" : "LuffyCity",
    "teacher" : [
        "DragonFire",
        "WuSir2B",
        "Alex AGod"
    ]
}
複製程式碼

陣列或者列表,多個值儲存到一個鍵 (list哦,大Python中的List哦

 

7.Object :

複製程式碼
{
    "_id" : ObjectId("5b163915993ddc4cd4918eaf"),
    "name" : "LuffyCity",
    "course" : {
        "name" : "Python",
        "price" : 19800
    }
}
複製程式碼

如果你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個資料型別就是字典

 

8.Null :

{
    "_id" : ObjectId("5b163a0e993ddc4cd4918eb0"),
    "name" : "LuffyCity",
    "course" : null
}

空資料型別 , 一個特殊的概念,None Null

 

9.Timestamp :時間戳

{
    "_id" : ObjectId("5b163bbf993ddc4cd4918eb3"),
    "name" : "LuffyCity",
    "date" : 1528183743111
}

 

10.Date :

 

{
    "_id" : ObjectId("5b163ba1993ddc4cd4918eb2"),
    "name" : "LuffyCity",
    "date" : ISODate("2018-06-05T15:28:33.705+08:00")
}

 儲存當前日期或時間格式 (我們一般很少使用這個Date型別,因為時間戳可以秒殺一切時間型別)

 

資料型別就介紹到這裡了,接下來我們就要學習一下在資料進行增刪改查時,資料型別的特殊用法

 

     

一.MongoDB 之 豐富多彩的資料型別世界

首先我們要先了解一下MongoDB中有什麼樣的資料型別:

Object  ID :Documents 自生成的 _id

String: 字串,必須是utf-8

Boolean:布林值,true 或者false (這裡有坑哦~在我們大Python中 True False 首字母大寫)

Integer:整數 (Int32 Int64 你們就知道有個Int就行了,一般我們用Int32)

Double:浮點數 (沒有float型別,所有小數都是Double)

Arrays:陣列或者列表,多個值儲存到一個鍵 (list哦,大Python中的List哦)

Object:如果你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個資料型別就是字典

Null:空資料型別 , 一個特殊的概念,None Null

Timestamp:時間戳

Date:儲存當前日期或時間unix時間格式 (我們一般不用這個Date型別,時間戳可以秒殺一切時間型別)

看著挺多的,但是真要是用的話,沒那麼複雜,很簡單的哦

 

二.MongoDB 之 剖析MongoDB的資料型別

那麼我們根據以上所說的資料型別(撿重點說,別整沒用的)展開說明:

1.Object ID :

複製程式碼
"_id" : ObjectId("5b151f8536409809ab2e6b26")

#"5b151f85" 代指的是時間戳,這條資料的產生時間
#"364098" 代指某臺機器的機器碼,儲存這條資料時的機器編號
#"09ab" 代指程序ID,多程序儲存資料的時候,非常有用的
#"2e6b26" 代指計數器,這裡要注意的是,計數器的數字可能會出現重複,不是唯一的
#以上四種識別符號拼湊成世界上唯一的ObjectID
#只要是支援MongoDB的語言,都會有一個或多個方法,對ObjectID進行轉換
#可以得到以上四種資訊

#注意:這個型別是不可以被JSON序列化的
複製程式碼

這是MongoDB生成的類似關係型DB表主鍵的唯一key,具體由24個位元組組成:

0-8位元組是時間戳,

9-14位元組的機器識別符號,表示MongoDB例項所在機器的不同;

15-18位元組的程序id,表示相同機器的不同MongoDB程序。

19-24位元組是計數器

 

2.String :

UTF-8字串,記住是UTF-8字串

 

3.Boolean :

true or false 這裡首字母是小寫的

 

4.Integer :

整數 (Int32 Int64 你們就知道有個Int就行了,一般我們用Int32)

 

5.Double :

浮點數 (MongoDB中沒有float型別,所有小數都是Double)

 

6.Arrays :

複製程式碼
{
    "_id" : ObjectId("5b163830993ddc4cd4918ead"),
    "name" : "LuffyCity",
    "teacher" : [
        "DragonFire",
        "WuSir2B",
        "Alex AGod"
    ]
}
複製程式碼

陣列或者列表,多個值儲存到一個鍵 (list哦,大Python中的List哦

 

7.Object :

複製程式碼
{
    "_id" : ObjectId("5b163915993ddc4cd4918eaf"),
    "name" : "LuffyCity",
    "course" : {
        "name" : "Python",
        "price" : 19800
    }
}
複製程式碼

如果你學過Python的話,那麼這個概念特別好理解,就是Python中的字典,這個資料型別就是字典

 

8.Null :

{
    "_id" : ObjectId("5b163a0e993ddc4cd4918eb0"),
    "name" : "LuffyCity",
    "course" : null
}

空資料型別 , 一個特殊的概念,None Null

 

9.Timestamp :時間戳

{
    "_id" : ObjectId("5b163bbf993ddc4cd4918eb3"),
    "name" : "LuffyCity",
    "date" : 1528183743111
}

 

10.Date :

 

{
    "_id" : ObjectId("5b163ba1993ddc4cd4918eb2"),
    "name" : "LuffyCity",
    "date" : ISODate("2018-06-05T15:28:33.705+08:00")
}

 儲存當前日期或時間格式 (我們一般很少使用這個Date型別,因為時間戳可以秒殺一切時間型別)

 

資料型別就介紹到這裡了,接下來我們就要學習一下在資料進行增刪改查時,資料型別的特殊用法