MongoDB 是一款 NoSQL 数据库,它的数据存储的格式是基于 BSON 的,其灵活的数据结构使得数据的存储和查询操作变得十分方便。在前端项目的开发中,我们常常需要与 MongoDB 进行交互操作,本文将为您介绍 MongoDB 写操作及数据校验的相关内容,帮助您更好地理解与 MongoDB 的交互操作。
写操作
插入数据
插入数据是向 MongoDB 中添加新文档的一种最基本的方式。插入文档时,您需要创建一个 BSON 文档并将其传递给 MongoDB 数据库。我们可以使用 MongoDB Shell 或任何 MongoDB 驱动程序将数据插入文档中。
MongoDB Shell
在 MongoDB Shell 中,可以使用以下语法进行插入操作:
db.collection.insert(document, options)
其中,document
表示要插入的文档,可以是 JavaScript 对象或数组。options
参数是一个可选参数,包含一些配置选项,如是否允许重复插入等。
下面是一个例子,演示如何向 user
集合中插入一个文档:
// javascriptcn.com 代码示例 // 插入一个新的文档 db.user.insert({ name: '张三', age: 25, gender: 'Male', address: { province: '北京市', city: '北京市', district: '海淀区' } });
更新数据
MongoDB 提供了多种用于更新数据的操作符,比如 $set
, $unset
, $inc
等。在更新文档时,您可以指定查询条件和更新操作符,在符合查询条件的所有文档上执行更新操作。
MongoDB Shell
在 MongoDB Shell 中,可以使用以下语法进行更新操作:
db.collection.update(query, update, options)
其中,query
参数表示查询条件,用于筛选符合条件的文档;update
参数用于指定要更新的字段及其新值;options
参数是一个可选参数,包含一些配置选项,如是否需要插入新的文档等。
下面是一个例子,演示如何更新 user
集合中所有年龄大于 25 的用户的名称:
// 更新所有年龄大于 25 的用户的名称 db.user.update( { age: { $gt: 25 } }, { $set: { name: '李四' } }, { multi: true } );
删除数据
删除文档是从 MongoDB 数据库中移除现有文档的过程。您可以指定一个查询条件,在符合条件的所有文档上执行删除操作。
MongoDB Shell
在 MongoDB Shell 中,可以使用以下语法进行删除操作:
db.collection.remove(query)
其中,query
参数表示查询条件,用于筛选符合条件的文档。
下面是一个例子,演示如何删除 user
集合中所有年龄小于 18 的用户的文档:
// 删除所有年龄小于 18 的用户的文档 db.user.remove({ age: { $lt: 18 } });
数据校验
MongoDB 4.0 及以上版本支持数据校验,这是一种在文档级别上对输入数据进行强制校验的功能。通过数据校验,您可以确保输入的数据符合预期的格式和约束条件,为应用程序提供更好的数据保护、数据一致性和数据质量。
数据校验使用 JSON 格式定义文档结构和约束条件,这些定义可以与集合的 validator
选项一起使用,以强制执行验证。
下面是一个例子,演示如何为 user
集合定义数据校验规则:
// javascriptcn.com 代码示例 // 定义数据校验规则 let validation = { $jsonSchema: { bsonType: 'object', required: ['name', 'age', 'gender', 'address'], properties: { name: { bsonType: 'string', description: 'must be a string and is required' }, age: { bsonType: 'int', minimum: 18, maximum: 120, description: 'must be an integer in [18, 120] and is required' }, gender: { bsonType: 'string', enum: ['Male', 'Female', 'Other'], description: 'must be a string in [Male, Female, Other] and is required' }, address: { bsonType: 'object', required: ['province', 'city', 'district'], properties: { province: { bsonType: 'string', description: 'must be a string and is required' }, city: { bsonType: 'string', description: 'must be a string and is required' }, district: { bsonType: 'string', description: 'must be a string and is required' } } } } } }; // 创建集合并指定数据校验规则 db.createCollection('user', { validator: validation });
在上面的例子中,我们定义了一个满足以下条件的数据校验规则:
- name 必须为字符串类型
- age 必须为整型,且在 [18, 120] 范围内
- gender 必须为字符串类型,并且取值必须在 [Male, Female, Other] 中
- address 必须为对象,包含 province、city、district 三个属性,且所有属性都必须为字符串类型
这个校验规则将会强制约束插入到 user
集合中的文档,确保输入数据的正确性。
总结
本文介绍了 MongoDB 的写操作及数据校验相关知识,并附带了 MongoDB Shell 的示例代码,帮助前端开发者更好地理解和掌握与 MongoDB 的交互操作。在实际的开发工作中,我们可以使用这些基本的操作,完成对 MongoDB 数据库的增删改查操作,并通过数据校验规则确保输入数据的正确性。希望这篇文章能够为您的工作带来帮助,祝您学习愉快!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6537c6ba7d4982a6eb0595c2