MongoDB数据库入门

著论准过秦,作赋拟子虚。这篇文章主要讲述MongoDB数据库入门相关的知识,希望能为你提供帮助。
体验简介本场景将提供一台阿里云MongoDB数据库。
完成本教程操作后,您可以使用数据管理服务DMS(Data Management Service)连接到MongoDB实例,然后进行数据表的CRUD操作(即对数据表执行增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)操作。)。
体验此场景后,可以掌握的知识有:
● DMS真实操作环境。
● MongoDB常用的SQL。
背景知识本场景主要涉及以下云产品和服务:
● 云数据库MongoDB:
云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份恢复、性能优化等功能。
● 数据管理DMS:
数据管理DMS支持统一管理mysql、SQL Server、PostgreSQL、PolarDB MySQL、PolarDB PostgreSQL、PolarDB-O、PolarDB-X、OceanBase、Oracle等关系型数据库,AnalyticDB、Data Lake Analytics、ClickHouse等OLAP数据库,MongoDB、Redis等NoSQL数据库。它是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪于一体的数据管理服务。您可以使用数据管理服务作为易用的数据库管理入口,让数据更安全、管理更高效、数据价值更清晰。
登录数据库实例(实例由云起实验室提供)本小节主要介绍如何通过阿里云数据管理服务DMS快速连接云数据库MongoDB。
\\1. 单击一键复制登录url,打开浏览器的无痕模式或者其他浏览器,将url粘贴到地址栏并访问,使用实验提供的阿里云子账号登录。
说明:
由于浏览器只能同时登录一个阿里云账号,为避免登录冲突,请使用浏览器的无痕模式或者其他浏览器登录阿里云子账号。

MongoDB数据库入门

文章图片

\\2. 访问云数据库MongoDB控制台,在左侧导航栏,单击副本集实例列表。
MongoDB数据库入门

文章图片

\\3. 在顶部菜单栏左上角,切换到资源所在地域。
说明**:**本次实验资源所在地域为华东二(上海)。
MongoDB数据库入门

文章图片

\\4. 在副本集实例列表页面,定位到已创建的实例,单击实例ID。
MongoDB数据库入门

文章图片

\\5. 在左侧导航栏中,选择数据安全性 > 白名单设置。
MongoDB数据库入门

文章图片

\\6. 在白名单分组列表,定位到default分组,单击
MongoDB数据库入门

文章图片
图标,然后单击手动修改。
MongoDB数据库入门

文章图片

\\7. 在手动修改对话框中,修改IPv4的允许访问IP名单为0.0.0.0/0,然后单击确定。
MongoDB数据库入门

文章图片

\\8. 在左侧导航栏中,单击基本信息,然后单击登录数据库,最后单击Primary。
MongoDB数据库入门

文章图片

\\9. 在登录实例对话框中,输入数据库账号和数据库密码,单击登录。
参数说明:
  • 数据库账号:输入云产品资源中创建的MongoDB数据库账号。
  • 数据库密码:输入云产品资源中创建的MongoDB数据库密码。
MongoDB数据库入门

文章图片

MongoDB数据库入门

文章图片

登录后如下图所示。
MongoDB数据库入门

文章图片

创建数据库和用户\\1. 在左侧导航栏中,展开已登录实例,将光标放置在实例名称上,展开鼠标右键菜单,选择数据库管理。
MongoDB数据库入门

文章图片

\\2. 在数据库管理页面,单击创建库。
MongoDB数据库入门

文章图片

\\3. 在创建数据库对话框中,输入数据库名,单击确认。
参数说明:
  • 数据库名:自定义名称,本示例为mymonogdb。
  • 集合名:可不填,默认集合为test。
MongoDB数据库入门

文章图片

如下图所示,数据库创建完成。
MongoDB数据库入门

文章图片

\\4. 在左侧导航栏中,展开已登录实例,将光标放置在实例名称上,展开鼠标右键菜单,选择账号管理。
MongoDB数据库入门

文章图片

\\5. 在账号管理界面,单击创建用户。
MongoDB数据库入门

文章图片

\\6. 在创建用户对话框中,选择目标库,依次输入用户名、密码和确认密码,选中普通操作角色,然后单击确认。
参数说明:
  • 目标库:选择刚刚创建的数据库mymonogdb。
  • 用户名:自定义用户名,本示例为mytest。
  • 密码:自定义密码。
  • 确认密码:再次输入密码。
  • 普通操作角色:勾选read和readWrite。
MongoDB数据库入门

文章图片

\\7. 在用户列表上方,使用搜索框查询mymonogdb。
MongoDB数据库入门

文章图片

您可以在用户列表中查看mytest用户的信息。
MongoDB数据库入门

文章图片

创建集合集合就是MongoDB文档组,类似于RDBMS(关系数据库管理系统:Relational Database Management System)中的表格。集合存在于数据库中,集合没有固定的结构,这意味着您在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
\\1. 单击页面上方的SQL admin页签,然后单击切换账户。
MongoDB数据库入门

文章图片

\\2. 在登录实例对话框中,依次输入数据库账号、数据库名称和数据库密码,单击确认。
参数说明:
  • 数据库账号:步骤三中创建的数据库账号。
  • 数据库名称:步骤三中创建的数据库。
  • 数据库密码:步骤三中创建的数据库密码。
MongoDB数据库入门

文章图片

\\3. 在左侧导航栏,双击mymonodb数据库。
MongoDB数据库入门

文章图片

\\4. 在SQLConsole中,输入如下SQL,创建一个集合,名称为testcollection,单击执行。
db.createCollection("testcollection");

MongoDB数据库入门

文章图片

\\5. 在执行确认对话框中,单击确认。
MongoDB数据库入门

文章图片

\\6. 单击刷新图标,即可看到创建的集合testcollection。
MongoDB数据库入门

文章图片

文档操作的使用【MongoDB数据库入门】文档是一组键值(key-value)对(即BSON)。MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是MongoDB非常突出的特点。
\\1. 插入文档。使用insert()方法向集合中插入文档,语法如下。
db.COLLECTION_NAME.insert(document);

参数说明:
  • COLLECTION_NAME:集合名称。
  • document:要写入的文档内容。
a. 在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.insert(title: 阿里云, description: 阿里云官网, by: 阿里云, url: https://www.aliyun.com/, tags: [mongodb, database, NoSQL], likes: 100 );

MongoDB数据库入门

文章图片

b. 在执行确认对话框中,单击确认。
MongoDB数据库入门

文章图片

执行的结果如下,表示表示已经成功插入一条文档。
MongoDB数据库入门

文章图片

\\2. 查询文档。查询文档使用find()方法,语法如下。
db.collection.find(query,projection);

参数说明:
  • query:可选,使用查询操作符指定查询条件。
  • projection:可选,使用投影操作符指定返回的键。查询时如果您需要返回文档中所有键值,只需省略该参数即可(默认省略)。
在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.find();

MongoDB数据库入门

文章图片

在下方执行结果中,您可以看到查询的返回结果。
MongoDB数据库入门

文章图片

\\3. 更新文档。使用方法update()来更新集合中的文档,语法格式如下。
db.collection.update( < query> , < update> ,upsert:< boolean> , multi:< boolean> , writeConcern:< document> );

参数说明:
  • query:必填, update的查询条件,类似sql update查询内where后面的条件。
  • update:必填,update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的部分。
  • upsert:可选,该参数表示,如果不存在update的记录,是否插入objNew。取值:true(表示插入)|false(默认,表示不插入)。
  • multi:可选,该参数表示,是否更新按条件查询到的全部记录。取值:true(表示更新查询到的全部记录)| false(默认,表示只更新查询到的第一条记录)。
  • writeConcern:可选,抛出异常的级别。
a. 在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.update(title:阿里云,$set:title:aliyun阿里云官方网站);

MongoDB数据库入门

文章图片

b. 在执行确认对话框中,单击确认。
MongoDB数据库入门

文章图片

下方的执行结果中,您可以看到已经成功更新一条文档。
MongoDB数据库入门

文章图片

c. 在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.find();

在下方的执行结果中,您可以看到文档的title已经被更新了。
MongoDB数据库入门

文章图片

\\4. 删除文档。使用deleteMany()方法来删除文档,语法如下。
db.collection.deleteMany( < filter> ,writeConcern: < document> , collation: < document> )

参数说明:
  • filter:表示过滤条件,用于规定一个查询规则,筛选出符合该查询条件的所有文档。删除操作将作用于经过该查询条件筛选之后的文档,类似于关系型数据库的where后面的过滤条件。如果要删除集合中的所有文档,请传入一个空文档( )。
  • writeConcern:可选参数,写入关注,其值为一个文档。
  • collation:可选参数,指定用于操作的collation。collation允许用户指定特定语言的字符串进行比较规则。
a. 在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.deleteMany( title : "aliyun阿里云官方网站" );

MongoDB数据库入门

文章图片

b. 在执行确认对话框中,单击确认。
MongoDB数据库入门

文章图片

在下方的执行结果中,您可以看到已经成功删除一条文档。
MongoDB数据库入门

文章图片

c. 在SQLConsole中,输入如下SQL,单击执行。
db.testcollection.find();

在下方的执行结果中,您可以看到runoob集合中没有文档。
MongoDB数据库入门

文章图片

MongoDB条件操作符的使用条件操作符用于比较两个表达式并从mongoDB集合中获取数据。
MongoDB中条件操作符有:
  • 大于:$gt
  • 小于:$lt
  • 大于等于:$gte
  • 小于等于:$lte
\\1. 在SQLConsole中,输入如下三条插入文档SQL,单击执行。
db.testcollection.insert( title: 阿里云官网, description: 阿里云官方网址。, by: 阿里云, url: https://www.aliyun.com/, tags: [aliyun1], likes: 200 ); db.testcollection.insert(title: 帮助中心, description: 阿里云帮助中心网址。, by: 阿里云, url: https://help.aliyun.com/, tags: [aliyun2], likes: 150 ); db.testcollection.insert(title: 体验实验室, description: 体验实验室网址, by: 阿里云, url: https://developer.aliyun.com/, tags: [aliyun3], likes: 100 );

MongoDB数据库入门

文章图片

\\2. 在执行sql过程中,会出现三次执行确认对话框,需要三次单击确认,。
MongoDB数据库入门

文章图片

下方的执行结果中,您可以看到已经成功插入三条文档。
MongoDB数据库入门

文章图片

\\3. 使用大于操作符($gt)。
在SQLConsole中,输入如下SQL,获取testcollection集合中 " likes" 大于100的数据,单击执行。
db.testcollection.find(likes : $gt : 100);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

\\4. 使用大于等于操作符($gte)。
在SQLConsole中,输入如下SQL,获取testcollection集合中 " likes" 大于等于100的数据,单击执行。
db.testcollection.find(likes : $gte : 100);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

\\5. 使用小于操作符($lt)。
在SQLConsole中,输入如下SQL,获取testcollection集合中 " likes" 小于150的数据,单击执行。
db.testcollection.find(likes : $lt : 150);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

\\6. 使用小于等于操作符($lte)。
在SQLConsole中,输入如下SQL,获取testcollection集合中 " likes" 小于等于150的数据,单击执行。
db.testcollection.find(likes : $lte : 150);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

MongoDB条件操作符$type的使用$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
在SQLConsole中,输入如下SQL,获取testcollection集合中“title”为String的数据,单击执行。
db.testcollection.find("title" : $type : string);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

MongoDB的limit与skip方法\\1. MongoDB的limit()方法。limit()方法用于MongoDB中读取指定数量的数据。limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
limit()方法基本语法如下所示。
db.COLLECTION_NAME.find().limit(NUMBER);

在SQLConsole中,输入如下SQL,查询文档中的两条数据,单击执行。
db.testcollection.find().limit(2);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片

\\2. MongoDB的skip()方法。我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER);

在SQLConsole中,输入如下SQL,查询文档中的指定的一条并跳过一条的数据,单击执行。
db.testcollection.find().limit(1).skip(1);

MongoDB数据库入门

文章图片

执行结果如下。
MongoDB数据库入门

文章图片


    推荐阅读