加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB的常用数据类型

发布时间:2023-09-15 09:25:50 所属栏目:系统 来源:
导读: MongoDB中的文档类似json,我们知道,在json中,最常用的数据类型有null、bool、数组、字符串、数据、json对象等等。相对比较少,比如对于时间类型的数据,json是无法表示的,而MongoDB中对json进行了简单的
        MongoDB中的文档类似json,我们知道,在json中,最常用的数据类型有null、bool、数组、字符串、数据、json对象等等。相对比较少,比如对于时间类型的数据,json是无法表示的,而MongoDB中对json进行了简单的优化,像json,但是又不是json。下面我们慢慢说

        MongoDB的常用数据类型和MySQL比较像,你可以对比着看。它的常用数据类型有:

        1、null
        用于表示空值或者不存在的字段

        {"x":null}

        2、bool
        这个容易理解,true or false

        {"x":true}

        3、整数
        在MongoDB自带的shell中不可用,shell中的需要使用函数来表示整数,如下:

        {"x":NumberInt("3")}

        如果我们写成

        {"x":3}

        这里的3会被表示成double。

        4、字符串
        最常用的数据类型

        {"x":"string"}

        5、对象id
        对象id是12字节的唯一ID

        {"x":ObjectId()}

        在MongoDB的数据记录里面,也就是文档里面,必须有一个_id键,这个_id键你可以简单理解为唯一标识,类似MySQL中的自增主键,但是它一般不设置成自增的,因为在分布式环境中,同步自动增加主键值既费时又费力,MongoDB为了保证分布式场景下的性能,通过自身生成方式来产生_id,_id的类型,称之为ObjectId类型。

        该类型使用12字节的存储空间,每个字节里面是2位16进制的数字,是一个24位的字符串。这12个字节的生成方式如下:

        0、1、2、3位是时间戳,提供秒级别唯一性

        4、5、6位是机器的唯一标识符,提供机器级别唯一性

        7、8位是当前生成ObjectId的进程标识符,保证不同进程的唯一性

        9、10、11位是一个计数器,保证同一秒相同进程产生的ObjectId的唯一性。

        6、日期类型
        日期类型存储的是从标准纪元开始的毫秒数,不存储时区。

        {"x":new Data()}

        示例如下:

> db.num.insert({"age": new Date()})
WriteResult({ "nInserted" : 1 })
> db.num.find()
{ "_id" : ObjectId("5f96b5e15e5c5ff982b9c6af"), "age" : 28 }
{ "_id" : ObjectId("5f9835d0f24f04e23fb63878"), "age" : 3 }
{ "_id" : ObjectId("5f983621f24f04e23fb63879"), "age" : 3 }
{ "_id" : ObjectId("5f9838d2f24f04e23fb6387a"), "age" : ISODate("2020-10-27T15:12:18.739Z") }
        7、数组
        值的集合或者列表可以表示成数组

        {"x":["a","b","c"]}

        8、内嵌文档
        文档可以包含别的文档

        {"x":{"foo":"bar"}}

        9、代码
        文档中可以包含JavaScript代码

        {"x":function(){/*-----*/}}

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章