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 :

1"_id" : ObjectId("5b151f8536409809ab2e6b26") 2 3#"5b151f85" 代指的是时间戳,这条数据的产生时间 4#"364098" 代指某台机器的机器码,存储这条数据时的机器编号 5#"09ab" 代指进程ID,多进程存储数据的时候,非常有用的 6#"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的 7#以上四种标识符拼凑成世界上唯一的ObjectID 8#只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换 9#可以得到以上四种信息 10 11#注意:这个类型是不可以被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 :

1{ 2 "_id" : ObjectId("5b163830993ddc4cd4918ead"), 3 "name" : "LuffyCity", 4 "teacher" : [ 5 "DragonFire", 6 "WuSir2B", 7 "Alex AGod" 8 ] 9}

数组或者列表,多个值存储到一个键 (list哦,相当于Python中的List)

8.Null :

1{ 2 "_id" : ObjectId("5b163a0e993ddc4cd4918eb0"), 3 "name" : "LuffyCity", 4 "course" : null 5}

空数据类型 , 一个特殊的概念,None Null

9.Timestamp :时间戳

1{ 2 "_id" : ObjectId("5b163bbf993ddc4cd4918eb3"), 3 "name" : "LuffyCity", 4 "date" : 1528183743111 5}

10.Date :

 

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

 存储当前日期或时间格式 (我们一般很少使用这个Date类型,因为时间戳可以秒杀一切时间类型)

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )