前言
MongoDB 是一种非关系型数据库,与传统的关系型数据库不同,MongoDB 支持各种各样的数据类型。为了更好地理解和使用 MongoDB,必须先熟悉这些数据类型以及如何查询这些类型的数据。本文将介绍所有 MongoDB 数据类型并提供相应的查询示例。
MongoDB 数据类型
字符串(String)
字符串是一组字符序列,被用作描述性文字。MongoDB 中的字符串必须使用双引号来括起来,如:"hello"。MongoDB 还支持正则表达式。
字符串查询示例
db.inventory.find({name: "Apple iPhone X 64GB Unlocked GSM Phone - Space Gray"})
数字(Number)
在 MongoDB 中,数字分为两种类型:整型(int)和浮点型(double),这两种类型都使用 Number 标记来表示。
数字查询示例
db.inventory.find({quantity: 10}) // 查询数量为 10 的商品 db.inventory.find({price: {$gt: 1000}}) // 查询价格大于 1000 的商品
布尔值(Boolean)
布尔值只有两个取值:true 和 false。在 MongoDB 中,布尔值使用标记 Boolean 来表示。
布尔值查询示例
db.inventory.find({instock: true}) // 查询有库存的商品
日期(Date)
日期类型存储了一个日期和时间,MongoDB 使用 ISODate 标记来表示。
日期查询示例
db.orders.find({orderDate: {$gte: new ISODate("2021-01-01")}}) // 查询 2021 年以后的订单
数组(Array)
数组是一组元素列表。MongoDB 中的数组可以包含不同类型的元素。
数组查询示例
db.users.find({hobbies: {$in: ["swimming", "reading"]}}) // 查找爱好是游泳或读书的用户 db.users.find({friends: {$size: 5}}) // 查找有 5 个朋友的用户
对象(Object)
MongoDB 中的对象是指一个包含了一组键值对的文档对象。
对象查询示例
db.orders.find({shippingAddress: {city: "Beijing"}}) // 查找收货地址在北京的订单
Null
在 MongoDB 中,Null 表示没有值或无效值。Null 使用 null 标签进行标记。
Null 查询示例
db.inventory.find({discontinued: null}) // 查询停产的商品
undefined
undefined 表示一个属性未定义。在 MongoDB 中,undefined 是合法值,但没有特殊的标记。
undefined 查询示例
db.inventory.find({lastSold: undefined}) // 查询从未售出的商品
ObjectId
ObjectId 是 MongoDB 中默认使用的标识符,每个文档都有一个唯一的 ObjectId 标识。ObjectId 使用特殊的 BSON 类型来持久化,保存为 12 个字节的二进制数。
ObjectId 查询示例
db.users.find({_id: ObjectId("5ce1d7942d8eb47dd8466ccb")}) // 查询特定的用户文档
结论
MongoDB 的数据类型在一个非关系型数据库中发挥重要作用。熟悉每种类型以及查询方式对于有效地管理和查询数据至关重要。本文提供了每种类型的详细说明及查询示例,以供读者参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67029ba5d91dce0dc847f9dc