MongoDB数据库入门

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: MongoDB数据库入门实验。

MongoDB数据库入门

1. 创建资源

开始实验之前,您需要先创建ECS实例资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、用户信息等)。

说明:资源创建过程需要1~3分钟。

上一页下一页

2. 登录数据库实例

本小节主要介绍如何通过阿里云数据管理服务DMS快速连接云数据库MongoDB。

1. 双击打开远程桌面的Chromium网页浏览器

2. 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录

3. 复制云数据库MongoDB控制台地址,在FireFox浏览器打开新页签,粘贴并访问云数据库MongoDB控制台。

https://mongodb.console.aliyun.com/

4. 在左侧导航栏,单击副本集实例列表

5. 在顶部菜单栏左上角,切换到资源所在地域。

说明您可在云产品资源列表中查看MongoDB资源所在地域。

6. 在副本集实例列表页面,定位到已创建的实例,单击实例ID

7. 在左侧导航栏中,选择数据安全性 > 白名单设置

8 在白名单分组列表,定位到default分组,单击图标,然后单击修改

9. 在手动修改对话框中,修改IPv4的允许访问IP名单为0.0.0.0/0,然后单击确定

10. 在左侧导航栏中,单击基本信息,然后单击登录数据库,最后单击Primary

11. 在登录实例对话框中,输入数据库账号数据库密码,单击登录

参数说明:

  • 数据库账号:输入云产品资源中创建的MongoDB数据库账号。
  • 数据库密码:输入云产品资源中创建的MongoDB数据库密码。

登录后如下图所示。


3. 创建数据库和用户

1. 在左侧导航栏中,单击数据库实例

2. 在左侧数据库实例区域,单击已登录实例,右键您的MongoDB数据库实例,单击数据库管理

3. 在数据库管理页面,单击创建库

4. 在创建数据库对话框中,输入数据库名,单击确认

参数说明:

  • 数据库名:自定义名称,本示例为mymonogdb。
  • 集合名:可不填,默认集合为test。

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

4. 在左侧导航栏中,单击已登录实例,右键您的MongoDB数据库实例,单击账号管理

5. 在账号管理界面,单击创建用户

6. 在创建用户对话框中,选择目标库,依次输入用户名密码确认密码,选中普通操作角色,然后单击确认

参数说明:

  • 目标库:选择刚刚创建的数据库mymonogdb。
  • 用户名:自定义用户名,本示例为mytest。
  • 密码:自定义密码。
  • 确认密码:再次输入密码。
  • 普通操作角色:勾选read和readWrite。

7. 在用户列表上方,使用搜索框查询mymonogdb

您可以在用户列表中查看mytest用户的信息。


4. 创建集合

集合就是MongoDB文档组,类似于RDBMS(关系数据库管理系统:Relational Database Management System)中的表格。集合存在于数据库中,集合没有固定的结构,这意味着您在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

1. 在左侧数据库实例区域,单击已登录实例,右键您的MongoDB数据库实例,单击切换账号

2. 在登录实例对话框中,依次输入数据库账号数据库名称数据库密码,单击确认

参数说明:

  • 数据库账号:步骤三中创建的数据库账号。
  • 数据库名称:步骤三中创建的数据库。
  • 数据库密码:步骤三中创建的数据库密码。

3 在SQLConsole中,输入如下SQL,创建一个集合,名称为testcollection,单击执行

db.createCollection("testcollection");

4. 在执行确认对话框中,单击确认

5. 单击刷新图标,即可看到创建的集合testcollection。


5. 文档操作的使用

文档是一组键值(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
});

b. 在执行确认对话框中,单击确认

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

2. 查询文档。查询文档使用find()方法,语法如下。

db.collection.find(query,projection);

参数说明:

  • query:可选,使用查询操作符指定查询条件。
  • projection:可选,使用投影操作符指定返回的键。查询时如果您需要返回文档中所有键值,只需省略该参数即可(默认省略)。

在SQLConsole中,输入如下SQL,单击执行

db.testcollection.find();

在下方执行结果中,您可以看到查询的返回结果。

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阿里云官方网站'}});

b. 在执行确认对话框中,单击确认

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

c. 在SQLConsole中,输入如下SQL,单击执行

db.testcollection.find();

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

4. 删除文档。使用deleteMany()方法来删除文档,语法如下。

db.collection.deleteMany(
   <filter>,
   {
      writeConcern: <document>,
      collation: <document>
   }
)

参数说明:

  • filter:表示过滤条件,用于规定一个查询规则,筛选出符合该查询条件的所有文档。删除操作将作用于经过该查询条件筛选之后的文档,类似于关系型数据库的where后面的过滤条件。如果要删除集合中的所有文档,请传入一个空文档({ })。
  • writeConcern:可选参数,写入关注,其值为一个文档。
  • collation:可选参数,指定用于操作的collation。collation允许用户指定特定语言的字符串进行比较规则。

a. 在SQLConsole中,输入如下SQL,单击执行

db.testcollection.deleteMany({ title : "aliyun阿里云官方网站" });

b. 在执行确认对话框中,单击确认

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

c. 在SQLConsole中,输入如下SQL,单击执行

db.testcollection.find();

在下方的执行结果中,您可以看到runoob集合中没有文档。


6. 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
});

2. 在执行sql过程中,会出现三次执行确认对话框,需要三次单击确认,

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

3. 使用大于操作符($gt)。

在SQLConsole中,输入如下SQL,获取testcollection集合中 "likes" 大于100的数据,单击执行

db.testcollection.find({likes : {$gt : 100}});

执行结果如下。

4. 使用大于等于操作符($gte)。

在SQLConsole中,输入如下SQL,获取testcollection集合中 "likes" 大于等于100的数据,单击执行

db.testcollection.find({likes : {$gte : 100}});

执行结果如下。

5. 使用小于操作符($lt)。

在SQLConsole中,输入如下SQL,获取testcollection集合中 "likes" 小于150的数据,单击执行

db.testcollection.find({likes : {$lt : 150}});

执行结果如下。

6. 使用小于等于操作符($lte)。

在SQLConsole中,输入如下SQL,获取testcollection集合中 "likes" 小于等于150的数据,单击执行。

db.testcollection.find({likes : {$lte : 150}});

执行结果如下。


7. MongoDB条件操作符$type的使用

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。

在SQLConsole中,输入如下SQL,获取testcollection集合中“title”为String的数据,单击执行。

db.testcollection.find({"title" : {$type : 'string'}});

执行结果如下。


8. MongoDB的limit与skip方法

MongoDB的limit与skip方法

1. MongoDB的limit()方法。limit()方法用于MongoDB中读取指定数量的数据。limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

limit()方法基本语法如下所示。

db.COLLECTION_NAME.find().limit(NUMBER);

在SQLConsole中,输入如下SQL,查询文档中的两条数据,单击执行。

db.testcollection.find().limit(2);

执行结果如下。

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

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER);

在SQLConsole中,输入如下SQL,查询文档中的指定的一条并跳过一条的数据,单击执行。

db.testcollection.find().limit(1).skip(1);

执行结果如下。

实验链接:https://developer.aliyun.com/adc/scenario/dc25bd89c9d14bb3b096ccec0a0706b8

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
99 3
SpringBoot入门 - 添加内存数据库H2
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
58 4
SpringBoot入门(4) - 添加内存数据库H2
|
20天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
58 15
|
28天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
3月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
42 2
SpringBoot入门(4) - 添加内存数据库H2
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
75 13
|
2月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
62 4
|
2月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
3月前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
241 6

相关产品

  • 云数据库 MongoDB 版