03.MongoDB数据类型
# 01.MongoDB数据类型
# 1.1 MongoDB支持以下数据类型
String(字符串)
: mongodb中的字符串是UTF-8有效的。Integer(整数)
: 存储数值。整数可以是32位或64位,具体取决于您的服务器。Boolean(布尔)
: 存储布尔(true/false)值。Double(双精度)
: 存储浮点值。Min/ Max keys(最小/最大键)
: 将值与最低和最高BSON元素进行比较。Arrays(数组)
: 将数组或列表或多个值存储到一个键中。Timestamp(时间戳)
: 存储时间戳。Object(对象)
: 嵌入式文档。Null (空值)
: 存储Null值。Symbol(符号)
: 与字符串相同,用于具有特定符号类型的语言。Date(日期)
: 以UNIX时间格式存储当前日期或时间。Object ID(对象ID)
: 存储文档ID。Binary data(二进制数据)
: 存储二进制数据。Code(代码): 将JavaScript代码存储到文档中。
Regular expression(正则表达式): 存储正则表达式
# 1.2 MongoDB常用类型
1、日期类型:date
- 使用不同方式来创建一个date
Date()
:表示当前时间,插入的是一个字符串类型new Date()
:插入的是isodate类型,表示的是格林威治标准时间ISODate()
: 类似new Date()
2、ObjectId
当插入数据的时候,自动生成一个字段: _id ---> 相当于主键
ObjectId
是一个12字节的BSON类型的字符串
3、表示数字的时候,注意的问题
NumberInt
: 表示32位整数NumberDecimal
:支持34位小数Double
:如果没有指定数字类型默认是double
# 02.测试
# 2.1 创建测试数据
db.test2.insertOne({ "_id" : 1, "val" : NumberDecimal( "9.99" ), "description" : "Decimal" })
db.test2.insertOne({ "_id" : 2, "val" : 9.99, "description" : "Double" })
db.test2.insertOne({ "_id" : 3, "val" : 10, "description" : "Double" })
db.test2.insertOne({ "_id" : 4, "val" : NumberLong(10), "description" : "Long" })
db.test2.insertOne({ "_id" : 5, "val" : NumberDecimal( "10.0" ), "description" : "Decimal" })
1
2
3
4
5
2
3
4
5
# 2.2 查询测试
# 1、查询表中所有数据
> db.test2.find()
# 2、数字不指定数据类型时默认是double类型,所以只能查到一条
> db.test2.find({"val":9.99})
{ "_id" : 2, "val" : 9.99, "description" : "Double" }
# 3、类型为NumberDecimal,值为9.99的数据
> db.test2.find({"val":NumberDecimal("9.99")})
{ "_id" : 1, "val" : NumberDecimal("9.99"), "description" : "Decimal" }
# 4、对于整数10的匹配,将匹配所有的数据类型是10
> db.test2.find({"val":10})
{ "_id" : 3, "val" : 10, "description" : "Double" }
{ "_id" : 4, "val" : NumberLong(10), "description" : "Long" }
{ "_id" : 5, "val" : NumberDecimal("10.0"), "description" : "Decimal" }
# 5、对于整数10的匹配,将匹配所有的数据类型是10
> db.test2.find({"val":NumberDecimal("10")})
{ "_id" : 3, "val" : 10, "description" : "Double" }
{ "_id" : 4, "val" : NumberLong(10), "description" : "Long" }
{ "_id" : 5, "val" : NumberDecimal("10.0"), "description" : "Decimal" }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
上次更新: 2024/4/1 16:53:26