1. MongoDB支持的数据类型
MongoDB支持的数据类型包括:字符串、整型、浮点型、布尔型、日期、对象ID、Null和二进制数据等。
1.1. 字符串(String)
字符串类型被定义为双引号(")或单引号(')包裹的字符序列。在MongoDB中,字符串长度没有上限。
MongoDB中的字符串操作符有:
$eq
:值等于指定的字符串
$ne
:值不等于指定的字符串
$regex
:使用正则表达式进行匹配
下面是一个使用正则表达式操作符的例子:
db.collection.find({ name: { $regex: /^John/ } });
上面的查询会查找所有“name”字段以“John”开头的文档。
1.2. 整型(Integer)
整型类型用于存储整数。可以使用NumberInt
类型来将一个字符串表示为整数类型。
MongoDB中的整型操作符有:
$eq
:值等于指定的整数
$ne
:值不等于指定的整数
$gt
:值大于指定的整数
$gte
:值大于或等于指定的整数
$lt
:值小于指定的整数
$lte
:值小于或等于指定的整数
下面是一个查询值小于10的示例:
db.collection.find({ x: { $lt: 10 } });
上面的查询将返回所有“x”字段小于10的文档。
1.3. 浮点型(Double)
浮点型类型用于存储有小数点的数字。可以使用NumberDouble
类型将一个字符串表示为浮点型。
MongoDB中的浮点型操作符与整型操作符类似,例如:
db.collection.find({ price: { $gt: 1.99 } });
上面的查询将返回所有“price”字段大于1.99的文档。
1.4. 布尔型(Boolean)
布尔型类型用于存储布尔值,即“true”或“false”。
MongoDB中的布尔型操作符只有$eq
和$ne
。下面是一个查询“isDelivered”字段为true的示例:
db.collection.find({ isDelivered: true });
上面的查询将返回所有“isDelivered”字段的值为true的文档。
1.5. 日期(Date)
日期类型用于存储日期和时间,MongoDB中使用ISODate格式存储。
MongoDB中的日期操作符有:
$eq
:值等于指定的日期
$ne
:值不等于指定的日期
$gt
:值大于指定的日期
$gte
:值大于或等于指定的日期
$lt
:值小于指定的日期
$lte
:值小于或等于指定的日期
下面是一个查询文档创建时间在2019年9月1日之后的示例:
db.collection.find({ createdAt: { $gte: ISODate('2019-09-01') } });
上面的查询将返回所有“createdAt”字段大于等于2019年9月1日的文档。
1.6. 对象ID(ObjectId)
对象ID类型用于存储MongoDB中文档的唯一标识。
MongoDB中的对象ID操作符只有$eq
和$ne
。下面是一个查询“_id”字段为指定值的示例:
db.collection.find({ _id: ObjectId('5d48a59fcacd3e2328ff71c1') });
上面的查询将返回所有“_id”字段等于指定值的文档。
1.7. Null
Null类型用于表示空值。
MongoDB中的Null操作符只有$eq
和$ne
。下面是一个查询“description”字段为Null的示例:
db.collection.find({ description: null });
上面的查询将返回所有“description”字段值为Null的文档。
1.8. 二进制数据(Binary)
二进制数据类型用于存储二进制数据,例如图片、视频等。
MongoDB中的二进制数据操作符只有$eq
和$ne
。
下面是一个查询“image”字段为指定二进制数据的示例:
db.collection.find({ image: BinData(0, '0101010101010101') });
上面的查询将返回所有“image”字段等于指定二进制数据的文档。
2. $type操作符
在MongoDB中,可以使用$type
操作符查询指定字段的数据类型。
$type
操作符的用法如下:
db.collection.find({ fieldName: { $type: <type> } });
其中,<type>为数据类型的数字表示。
下面是一个查询“price”字段数据类型为Double的示例:
db.collection.find({ price: { $type: 1 } });
上面的查询将返回所有“price”字段数据类型为Double的文档。
下面是一张MongoDB支持的数据类型及其数字表示的表格:
类型 | 数字表示 |
---|---|
Double | 1 |
String | 2 |
Object | 3 |
Array | 4 |
Binary data | 5 |
Undefined | 6 |
ObjectID | 7 |
Boolean | 8 |
Date | 9 |
Null | 10 |
Regular Expression | 11 |
JavaScript | 13 |
Symbol | 14 |
JavaScript (with scope) | 15 |
32-bit integer | 16 |
Timestamp | 17 |
64-bit integer | 18 |
Decimal 128-bit floating point | 19 |
总结
本文详细介绍了MongoDB支持的数据类型以及相应的操作符,包括字符串、整型、浮点型、布尔型、日期、对象ID、Null和二进制数据等,同时介绍了$t ype操作符的用法。
MongoDB的数据类型和操作符既简单又强大,使得开发人员可以更加灵活地查询和操作数据。