1.简介
MongoDB 是什么?为什么要使用 MongoDB?
MongoDB 是一个基于 分布式文件存储的数据库。由 C++ 编写,就是为 Web应用提供可拓展 + 高性能数据存储解决方案.
MongDB 是一个介于关系数据库和非关系数据库之间的产品. 他支持的数据结构非常松散,类似 json 的 bson 格式,因此可以存储比较复杂的数类型. Mongo 最大的特点就是他的查询非常强大,语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分的功能,并且还支持对数据建立索引。
应用场景
游戏应用:使用 MongoDB 来存储用户的 装备、积分等直接以内嵌文档的形式存储,方便查询和更新.物流数据:订单状态会在运送过程中不断更新,因此使用 MongoDB 以数组形式来存储订单信息,一次查询就能将订单所有变更读取出来社交应用:使用 MongoDB 来存储用户信息和朋友圈信息,通过地理位置所有实现附近的人、地点等功能。并且非常适合存储聊天记录,因为他提供了非常丰富的查询,再写入和读取方面都相对 MySQL 都更快.视频直播:使用 MongoDB 存储用户信息、礼物信息等.大数据应用:使用 MongoDB 作为大数据的云存储系统,随时进行数据提取和分析,掌握行业动态。
一、MongoDB文档基本概念
文档:MongoDB中的数据记录称为文档,类似于JSON对象。文档由字段和值对组成,字段名(也称为键)是字符串,值可以是多种数据类型,包括其他文档、数组和文档数组。 集合:在MongoDB中,多个文档组成一个集合,类似于关系型数据库中的表。但与表不同,集合中的文档可以有不同的字段集,因此集合中的文档不必具有相同的结构。 数据库:MongoDB中的多个集合可以组合成一个数据库。每个数据库都有一个名称,并且数据库中的所有集合都存储在同一物理位置。
二、文档操作
插入文档 使用insertOne()或insertMany()方法将文档插入到集合中。例如,使用db.collection.insertOne({document})插入一个文档。 查询文档 使用find()方法查询集合中的文档。可以通过指定查询条件来筛选文档。例如,db.collection.find({age: 25})将返回所有年龄为25的文档。 MongoDB支持丰富的查询操作符和逻辑操作符,用于构建复杂的查询条件。 更新文档 使用updateOne()、updateMany()或replaceOne()方法更新集合中的文档。例如,使用db.collection.updateOne({age: 25}, {$set: {name: “NewName”}})将年龄为25的文档的名称字段更新为"NewName"。 删除文档 使用deleteOne()或deleteMany()方法删除集合中的文档。例如,db.collection.deleteOne({age: 25})将删除年龄为25的一个文档。
三、MongoDB文档操作的特点和优势
灵活的数据模型:MongoDB不需要事先定义表格结构,可以存储各种类型的数据,支持嵌入式文档和引用两种数据关联方式。 强大的查询语言:MongoDB提供丰富的查询操作符和聚合管道功能,支持复杂的查询和分析需求。 高性能的数据读写:MongoDB使用内存映射文件和预分配空间等技术优化数据读写性能,支持快速的插入、更新和查询操作。 可扩展的存储和计算能力:MongoDB支持水平扩展和自动分片,可以方便地增加服务器和处理大规模数据。
总结
MongoDB的文档操作提供了灵活、强大且高性能的数据存储和查询解决方案,适用于各种需要处理复杂数据结构和高并发读写操作的场景。 一,数据库操作 在MongoDB中,数据库的创建是一个简单的过程,当你首次向MongoDB中插入数据时,如果数据库不存在,MongoDB会自动创建它。
我们只需选择一个数据库名称,并开始向其中插入文档即可。
语法 当你使用 use 命令来指定一个数据库时,如果该数据库不存在,MongoDB将自动创建它。
MongoDB 创建数据库的语法格式如下:
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
此时,你可以开始在这个数据库中创建集合和插入文档。
如果你想查看所有数据库,可以使用 show dbs 命令:
show dbs
MongoDB 删除数据库
语法
MongoDB 删除数据库的语法格式如下:
db.dropDatabase()
删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。
例如删除test
MongoDB 创建集合
本章节我们为大家介绍如何使用 MongoDB 来创建集合。
MongoDB 中使用 createCollection() 方法来创建集合。
语法格式:
db.createCollection(name, options)
参数说明:
name: 要创建的集合名称。
options: 可选参数, 指定有关内存大小及索引的选项。
实例
(如果要查看已有集合,可以使用 show collections 或 show tables 命令:)
show collections
show tables
MongoDB 删除集合
本章节我们为大家介绍如何使用 MongoDB 来删除集合。
MongoDB 中使用 drop() 方法来删除集合。
drop() 方法可以永久地从数据库中删除指定的集合及其所有文档,这是一个不可逆的操作,因此需要谨慎使用。
语法格式:
db.collection.drop()
实例
MongoDB 插入文档 本章节中我们将向大家介绍如何将数据插入到 MongoDB 的集合中。
文档的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
常用的插入文档方法包括: db.collection.insertOne():插入单个文档 db.collection.insertMany():插入多个文档 1、insertOne() insertOne() 方法用于在集合中插入单个文档。
db.collection.insertOne(document, options) document:要插入的单个文档。 options(可选):一个可选参数对象,可以包含 writeConcern 和 bypassDocumentValidation 等。
以下是实例 :
2、insertMany()
insertMany() 方法用于在集合中插入多个文档。
db.collection.insertMany(documents, options)
documents:要插入的文档数组。
options(可选):一个可选参数对象,可以包含 ordered、writeConcern 和 bypassDocumentValidation 等。
例子:
db.myCollection.insertMany([
{ name: "Bob", age: 30, city: "Los Angeles" },
{ name: "Charlie", age: 35, city: "Chicago" }
])
MongoDB 更新文档
db.COLLECTION_NAME.update(criteria,objnew.upsert, multi)
·db:当前数据库对象。 COLLECTION_NAME:当前集合对象。 update():更新文档方法。 criteria:更新的查询条件,类似sql中的where. objNew:新的对象和操作符,类似sql中的set。 upsert:不存在更新对象时,是否插入,默认为false multi:默认为false,只更新查找到的第一个文档,反之更新所有。
升级语法
db.集合名.update(条件,新数据){修改器: {键:值}}
修改器 | 作用 |
---|---|
¥inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |