本文介绍: MongoDB是一种NoSQL数据库,采用了文档数据库模型。它以BSON(Binary JSON)格式存储数据支持动态模式和灵活的查询语言文档存储:MongoDB以文档(Document)的形式存储数据每个文档一个包含数据单元,类似于关系型数据库的行。动态模式:MongoDB不需要定义的表结构可以根据需要动态添加字段,更加灵活。分布式存储:MongoDB支持分片副本集等方式进行水平扩展和高可用性部署

1. 前言

本文旨在帮助大家快速了解MongoDB,快速了解和掌握MongoDB的干货内容.

2. MongoDB简介

MongoDB是一种NoSQL数据库,采用了文档数据库模型。它以BSON(Binary JSON)格式存储数据支持动态模式和灵活的查询语言。MongoDB具有以下特点:

  1. 文档存储:MongoDB以文档(Document)的形式存储数据每个文档一个包含数据单元,类似于关系型数据库的行。
  2. 动态模式:MongoDB不需要定义的表结构可以根据需要动态添加字段,更加灵活。
  3. 分布式存储:MongoDB支持分片副本集等方式进行水平扩展和高可用性部署
  4. 强大的查询语言:MongoDB支持丰富的查询语言,包括嵌套查询索引聚合操作等,可以满足各种查询需求

MongoDB适用于需要处理结构化数据、大规模数据和高并发读写场景,例如Web应用用户数据日志数据的存储和分析等。它提供了灵活的数据模型和强大的查询能力,使得开发者可以更加高效地处理复杂的数据操作

NoSQL(Not Only SQL)是一种非关系型数据库(Non-Relational Database)的分类,与传统的关系型数据库(RDBMS)相对应。NoSQL数据库设计目标解决关系型数据库在大规模数据存储和高并发读写方面的限制

3. MongoDB与关系型数据库的对比

MongoDB是一个文档型数据库,而关系型数据库则是一种基于表格的数据库。
在这里插入图片描述
可以看到还是有许多相似的地方,但也有很多不同.MongoDB提供了更好的可扩展性和大数据处理能力,而关系型数据库则更适用于小型企业和机构级别数据处理

4. MongoDB的安装

官网:MongoDB:应用程序数据平台 | MongoDB
在这里插入图片描述
选择Community Server
在这里插入图片描述
选择版本以及对应操作系统后,点击 Download 即可开始安装
在这里插入图片描述
下载完成之后打开安装包,一直点击 next可以
在这里插入图片描述
安装完成之后,桌面会出现一个MongoDB的GUI工具Compass快捷方式
在这里插入图片描述

5. Compass使用

双击打开,会看到以下界面:
点击Connect即可连接本地的MongoDB服务
在这里插入图片描述
在这里插入图片描述
注: admin,configlocal为MongoDB默认的数据库

此外在Compass的下方有一个mongosh交互式命令行终端,就可以输入一些命令操作MangoDB
在这里插入图片描述
在这里插入图片描述

6. MongoDB的常用语句

查看数据库:

show databases
show dbs

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合存放test 数据库中。

选中/创建数据库:

use [database]

注: 即使这个数据库不存在也可以运行.如果数据库不存在,则创建数据库,否则切换指定数据库。
示例:
在这里插入图片描述
可以看到虽然创建了game数据库,但是查看数据库时并没有个数据库.这是因为数据库中没有数据

接下来我们插入条数据,但首先先来了解一下MongDB中文档的概念:

MongoDB集合是MongoDB文档数据存储的基本单位,类似于关系数据库中的表。它是一个无架构容器,可以存储任意的文档数据。MongoDB的文档数据是使用JSON格式表示的,它们可以包含不同的字段和值。

插入一个文档到集合中:

db.collection.insertOne()

示例:

在这里插入图片描述

db.user表示创建了一个名为user的集合

insertOne():用于插入文档到集合中

返回值:

查询集合中的数据:

db.collection.find()

示例:

在这里插入图片描述
MongDB中的不同文档的结构并不要求相同,如下所示:
在这里插入图片描述
可以看到一条数据有age字段,另一条数没有age字段.,这也是与MySQL中的行不一样的地方.
插入多条数据:

db.collection.insertMany()

示例:

在这里插入图片描述
在这里插入图片描述
限制查询返回结果的数量:

limit()

示例:
在这里插入图片描述
排序查询结果:

sort()

示例:

在这里插入图片描述
sort中的参数是一个对象,要传入一个字段,为比较对象. 1表示升序,-1表示降序.

当然也可以比较多个参数,只需要参数的后面再加一参数就可以了

如下所示:

db.user.find().sort({age:1,name:1})

跳过一些查询结果:

skip()

示例:

在这里插入图片描述
表示的是查询按照年龄升序 ,并跳过前两条的数据

一般来说 skip函数都是和sort函数一起使用的,用来实现分页功能

条件查询:

find({field:value})

示例:

查询年龄为20的用户
在这里插入图片描述
注意如果输入的是”20″,那么就不会产生任何数据,因为MongoDB中的数据类型是非常严格
在这里插入图片描述
其中第二个字段后面的数据1,表示要返回的字段

这里_id是MongoDB自动返回的,如果不想返回,可以在第二参数中加上_id,值为0

在这里插入图片描述
MongoDB中也可以使用一些运算符实现复杂查询的语句

例如返回年龄大于18的用户在这里插入图片描述
其中$gt就是>,常见的运算如下:

ltless than 小于
le:less than or equal to 小于等于
eq:equal to 等于
ne:not equal to 不等于
ge:greater than or equal to 大于等于
gt:greater than 大于

$in()可以查询某个字段的值是否在一个数组中

例如查询年龄为18和20的用户
在这里插入图片描述
当然也可以使用$nin()查询某个字段的值是否不在一个数组中

$exists()判断某个字段是否存在

查询具有age字段的用户:其中1或true表示存在,0和false表示不存在在这里插入图片描述
其中1或true表示存在,0和false表示不存在
以下也是一些常用的MongoDB命令:

7. 总结

MongoDB是一个功能强大的数据库管理系统,适合处理具有高度的非结构化数据和数据量应用程序。它用于各种用例,包括Web应用程序大数据等,具有高可伸缩性、高性能、高可用性分布式和非结构化数据存储等特点。

原文地址:https://blog.csdn.net/m0_63463510/article/details/134710960

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17457.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注