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的数据类型
那么我们根据以上所说的数据类型 展开说明:
- 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字节是计数器
- String
- Boolean
- Integer
- Double
- Arrays
{ "_id" : ObjectId("5b163830993ddc4cd4918ead"), "name" : "LuffyCity", "teacher" : [ "DragonFire", "WuSir2B", "Alex AGod" ] }
- Object
{ "_id" : ObjectId("5b163915993ddc4cd4918eaf"), "name" : "LuffyCity", "course" : { "name" : "Python", "price" : 19800 } }
- Null
{ "_id" : ObjectId("5b163a0e993ddc4cd4918eb0"), "name" : "LuffyCity", "course" : null }
- Timestamp :时间戳
{ "_id" : ObjectId("5b163bbf993ddc4cd4918eb3"), "name" : "LuffyCity", "date" : 1528183743111 }
- Date
{ "_id" : ObjectId("5b163ba1993ddc4cd4918eb2"), "name" : "LuffyCity", "date" : ISODate("2018-06-05T15:28:33.705+08:00") }