【国庆弯道超车系列】MongoDB入门基础知识

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 【国庆弯道超车系列】MongoDB入门基础知识

通过前一篇文章,已经学习了如何下载安装MongoDB,在本文主要以一些简单的小例子,简述MongoDB的常规操作CRUD【增删改查】,仅供学习分享使用,如有问题,还请指正。

数据库操作

创建及切换数据库

语法:use db_name;

释义:如果数据库存在,则切换到对应数据库;如果数据库不存在,则创建数据库。如下所示:

显示所有数据库

语法:show dbs;

释义:显示当前连接的所有的数据库,如下所示:

注意:在刚创建完数据库时,通过show dbs进行查看,是不显示的,因为数据库是空的,没有创建集合

显示当前数据库

语法:db;

释义:显示当前连接的数据库,如下所示:

删除数据库

语法:db.dropDatabase();

释义: 删除当前连接的数据库,如果要删除其他数据库,可通过use db_name 进行切换,然后再删除。

示例:删除后,在show dbs时,则不显示,如下所示:

注意:在删除数据库后,通过db命令,依然显示删除后的数据库,这说明了什么?

集合操作

创建集合

语法:db.createCollection(name,option);

释义:创建集合,第一个参数是集合名称,第二个参数是集合选项,属于非必填项。

关于option可选内容,如下所示:

注意:capped和size是一对组合,size大小为KB,max为集合中文档数量。

示例,创建一个名称为person的固定集合,集合大小为102400,最大文档数量为100。如下所示:

创建集合后,再次执行show dbs命令,则会显示创建的数据库,如下所示:

注意:也可以通过insert语句插入文档时,创建对象。在插入文档是,如果集合存在,则插入;如果集合不存在,则创建集合,然后插入文档。

查看已有集合

语法:show collections; 或者 show tables;

释义:显示当前连接数据库中所有集合。

示例:查看hexdb下所有的集合,如下所示:

删除集合

语法:db.集合名.drop();

释义:删除对应的集合及集合中的数据,如果删除成功,返回true。

示例:删除person集合,如下所示:

插入文档

集合中的文档,是以BSON【Binary JSON】形式存在的。

语法:db.collection_name.insert(document);

释义:往指定集合中插入文档。

示例:通过insert语句往集合中插入数据,如果集合不存在,则创建,如下所示:

注意:数据库已经删除,但是在创建集合后,又奇迹般的出现了。说明之前的删除数据库,只是将数据库中的集合给删除了。

一次插入多条文档

执行一次语句,插入多条文档

语法:db.集合名.insert([{文档1},{文档2},{文档3}]);

释义:执行一次语句,插入多条文档。

示例:一次插入3条文档,并进行查询。如下所示:

查询文档

查询集合中的文档,

语法:db.集合名.find(condition);

释义:根据条件查询集合中的文档,如果条件为空,则查询集合中所有文档。

示例:先查询所有文档,在根据名称进行检索,如下所示:

更新文档

根据指定条件,更新对应文档的内容。

更新文档语法如下所示:

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 : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

示例:更新lisi的年龄为28,分别用1:表示更新前,2:更新语句,3:更新后。如下所示:

多个条件更新文档

1. 多个条件同时满足时,才能更新文档。

语法:{条件1,条件2,条件3,...}

在多个条件需要同时满足时,用逗号隔开,如下所示:

2. 多个条件有一个满足时,即可修改文档。

语法:$or:[{条件1},{条件2},{条件3}]。如下所示:

删除文档

根据指定条件,删除对应文档。

语法:

db.collection.remove(
   <query>,
   <justOne>
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

示例:删除名称为zhangsan的文档,如下所示:

删除集合中所有文档

语法:db.集合名.remove({});

释义:不带条件,则表示删除集合中所有文档。

MongoDB数据类型

MongoDB的数据类型,不像关系型数据库的数据类型,需要预先定义,而是根据存储的值的类型来的。数据类型如下所示:

备注

浣溪沙·一向年光有限身

【作者】晏殊 【朝代】宋

一向年光有限身。等闲离别易销魂。酒筵歌席莫辞频。

满目山河空念远,落花风雨更伤春。不如怜取眼前人。

相关实践学习
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
相关文章
|
NoSQL MongoDB 索引
开心档-软件开发入门之MongoDB 覆盖索引查询
开心档-软件开发入门之MongoDB 覆盖索引查询
77 0
|
3月前
|
NoSQL MongoDB
MongoDB入门-sort和投影
这篇文章介绍了MongoDB中的排序(sort)和投影(projection)操作,通过示例代码展示了如何使用这些功能来控制查询结果的排序顺序和返回的字段。
38 3
MongoDB入门-sort和投影
|
3月前
|
NoSQL MongoDB
MongoDB入门-MongoDB的CURD语句练习
这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
47 2
|
2月前
|
存储 NoSQL MongoDB
MongoDB入门级别教程全(Windows版,保姆级教程)
一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
82 2
MongoDB入门级别教程全(Windows版,保姆级教程)
|
4月前
|
NoSQL BI 数据处理
【超实用攻略】MongoDB 聚合框架:从入门到精通,带你解锁数据处理新姿势!
【8月更文挑战第24天】MongoDB是一款以其灵活性和高性能闻名的NoSQL数据库。其强大的聚合框架采用管道式处理,允许用户定义多个数据处理阶段如过滤、分组等。本文通过示例数据库`orders`和`products`,演示如何利用聚合框架计算各产品的总销售额。示例代码展示了使用`$lookup`连接两集合、`$unwind`打平数组及`$group`按产品ID分组并计算总销售额的过程。这突显了聚合框架处理复杂查询的强大能力,是进行数据分析和报表生成的理想选择。
58 3
|
4月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
89 0
|
7月前
|
存储 NoSQL MongoDB
【MongoDB 专栏】MongoDB 入门指南:从零开始学习
【5月更文挑战第10天】本文介绍了MongoDB,一个流行的NoSQL数据库,以其灵活的数据模型和高性能著称。内容包括MongoDB的基础知识、安装配置、文档数据模型、数据库操作(如创建、查询、更新和删除)、索引创建、数据备份恢复及性能优化策略。此外,还探讨了MongoDB在社交网络、电子商务等领域的应用。对于初学者,本文提供了从零开始学习MongoDB的入门指导。
114 0
【MongoDB 专栏】MongoDB 入门指南:从零开始学习
|
7月前
|
存储 NoSQL MongoDB
Mongodb 入门
Mongodb 入门
42 0
|
运维 NoSQL MongoDB
[慕课笔记]mongodb入门篇
[慕课笔记]mongodb入门篇
63 1
|
NoSQL 数据可视化 MongoDB
mongoDB从入门到实战最全小白教程
mongoDB从入门到实战最全小白教程
525 0