MongoDB 是一个 NoSQL 数据库,它的文档模型提供了非常灵活的数据结构,因此在使用时需要对 MongoDB 中的数据类型具有深刻的理解。本文将介绍 MongoDB 中常见的数据类型,以及在实践中的应用和注意事项。
基本数据类型
字符串 - String
字符串在 MongoDB 表示为 UTF-8 编码的文本。字符串的长度最多可以达到 16 MB。
// 创建字符串 db.collection.insertOne({ name: "张三", age: 18, hobby: "打游戏" }); // 查询字符串 db.collection.find({ name: "张三" });
数字 - Number
MongoDB 支持 32 位和 64 位的有符号整数、浮点数和十进制数。
// 创建数字 db.collection.insertOne({ price: 99.9, count: 10 }); // 查询数字 db.collection.find({ price: { $lt: 100 } });
布尔类型 - Boolean
布尔类型表示为 true 或 false。
// 创建布尔类型 db.collection.insertOne({ activated: true }); // 查询布尔类型 db.collection.find({ activated: true });
Null
Null 表示为 null。
// 创建 null db.collection.insertOne({ address: null }); // 查询 null db.collection.find({ address: null });
时间日期 - Date
时间日期在 MongoDB 中表示为从 1970 年 1 月 1 日至今的毫秒数。
// 创建时间日期 db.collection.insertOne({ createAt: new Date() }); // 查询最近一天的数据 db.collection.find({ createAt: { $gte: new Date(new Date() - 24 * 60 * 60 * 1000) } });
复合数据类型
数组 - Array
数组是一个包含一个或多个值的列表。
// 创建数组 db.collection.insertOne({ tags: ["Node.js", "React", "MongoDB"] }); // 查询数组 db.collection.find({ tags: "Node.js" });
对象 - Object
对象是一个包含键值对的文档。
// 创建对象 db.collection.insertOne({ author: { name: "张三", age: 25 } }); // 查询对象 db.collection.find({ "author.name": "张三" });
内嵌文档 - Document
MongoDB 中的文档可以嵌套其他文档,称为内嵌文档。
// 创建内嵌文档 db.collection.insertOne({ title: "Node.js 从入门到精通", author: { name: "张三", age: 25 }, }); // 查询内嵌文档 db.collection.find({ "author.name": "张三" });
关键点和示例
数据类型的选择
在选择数据类型时,应该根据需求和数据的特性,选择适当的数据类型。例如,在需要对字符串进行模糊查询时,可以选择正则表达式或文本索引。
// 创建正则表达式 db.collection.insertOne({ title: /^MongoDB/ }); // 创建文本索引 db.collection.createIndex({ text: "text" });
数据类型转换
在 MongoDB 中,可以使用 $convert 操作符将数据类型进行转换。
// 数据类型转换 db.collection.aggregate([ { $project: { price: { $convert: { input: "$price", to: "double" } }, }, }, ]);
数据类型限制
在 MongoDB 中,数据类型有其限制,例如字符串长度的限制。因此,应该在使用时了解数据类型的限制,以避免异常和错误。
// 创建超长字符串 db.collection.insertOne({ description: "这是一个非常非常非常非常非常非常非常长的字符串" }); // Error: E11000 duplicate key error collection
总结
在使用 MongoDB 进行开发时,对数据类型的理解是非常重要的,因为它影响到数据的存储、查询、转换等方面。本文介绍了 MongoDB 中常见的数据类型,并提供了相关的示例代码。在实践中,应该灵活运用各种数据类型,以满足不同的业务需求。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65434b507d4982a6ebcf730f