MongoDB--数据类型

本文深入探讨MongoDB支持的各种数据类型,包括字符串、数值、日期、正则表达式、数组、内嵌文档及ObjectId,详细解析每种类型的特性和用法,帮助读者全面了解MongoDB数据存储方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB–数据类型


在这里插入图片描述

重点说明几种:

1.字符串

UTF-8字符串都可以表示为字符串类型的数据

{"x":"baba"}
2.数值

shell默认使用64位浮点整数型,对于整型值,可以使用NumerInt(表示4字节带符号整数)或NumberLong类(表示8字节带符号整数)

"x":NumberInt("3")
"x":NumberLong("3")
3.日期

表示当前距离 Unix新纪元(1970年1月1日)的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。 日期存储的精确到毫秒级,不存储时区。

> var mydate=new Date()
> mydate
ISODate("2019-11-21T06:17:36.292Z")
> typeof mydate
object
> 

可以使用toString()得到日期字符串

> var mydate1=mydate.toString()
> mydate1
Thu Nov 21 2019 14:17:36 GMT+0800 (CST)
> typeof mydate1
string
> 
4.正则表达式

查询的时候使用正则表达式作为限定条件,语法和js语法相同

{"x":/fooow/i}
5.数组

数组中的元素可以是不同是数据类型的,文档中的数组,MongoDB可以理解这种结构

{"x":["a",3,"c"]}
6.内嵌文档

文档可以内嵌其他文档,被嵌套的文档作为父文档的值

> people={"name":"zs","age":12,"address":{"street":"123 part","city":"beijin","state":"NY"}}
{
        "name" : "zs",
        "age" : 12,
        "address" : {
                "street" : "123 part",
                "city" : "beijin",
                "state" : "NY"
        }
}
> 
7.ObjectId

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

  • 前 4 个字节表示创建 unix 时间戳,格林尼治时间 UTC 时间,比北京时间晚了 8 个小时
  • 接下来的 3 个字节是机器标识码,散列值(hash)
  • 紧接的两个字节由进程 id 组成 PID(进程标志符)
  • 最后三个字节是随机数
    在这里插入图片描述

MongoDB 中存储的文档必须有一个 _id 键。这个键的值可以是任何类型的,默认是个 ObjectId 对象由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间:

> var newObject=ObjectId()
> newObject
ObjectId("5dd6302f646aa0dd388e14b0")
> newObject.getTimestamp()
ISODate("2019-11-21T06:35:27Z")
> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值