MongoDB基础介绍
定义
MongoDB是一款流行的非关系型数据库管理软件,目的在于为web提供可扩展的高性能的数据存储解决方案
没有表结构,利用文档存储数据,数据结构由键值对组成
三元素
数据库
集合 collection->相当表
文档 document->相当记录,由键值对/字段/属性组成
键:不管有没有引号都是字符串类型(有时候必须加引号)
值:可以是任一类型的数据
MongoDB相比MySQL优劣势
优势:
速度快,操作简单,使用灵活
劣势:
安全性,数据一致性,稳定性不够
数据库基本操作
显示所有数据库
Show dbs;
显示当前连接的数据库
db;
创建并连接数据库
Use 数据库名;
注意:如果已经有该数据库,则直接连接,如果没有该数据库,那么会先创建该数据库,然后连接,
所以说这个指令就是创建数据库指令
显示当前数据库的所有集合
Show collections;
注意这个指令是在你连接数据库之后使用,也就是use 数据库名之后
Task_1数据库里有一个集合a
显示集合下的文档
db.a.find();
创建集合并插入数据
db.a.insert();
注意:如果存在该集合,则直接插入数据,如果没有该集合,就先创建该集合,然后插入数据,所以说,这个指令就是创建集合的指令
文档操作
文档插入
插入单个文档
一个大括号就是一个文档
插入多个文档
多个文档插入时,文档以数组的形式放入
循环插入
注意点
- 当给同一个字段插入数据时,只取最后一个值
-
允许重复插入两次相同的文档,因为系统每次给文档分配的id不同
-
当你自定义id之后,同一id下不允许对同一字段赋相同值
文档查询
关键字
$eq 表示=; $ne 表示!=
$gt 表示>; $gte 表示>=
$lt 表示<; $lte 表示<=
$in 表示在…内; $nin 表示不在…内
$in**常用于单个条件单个字段查询**
$and 表示同时满足多个条件
$and**常用于多个条件查询**
$or 表示多个条件中只满足一个条件就成立
$or**常用于多个条件查询**
$not 表示非
$in $and $or查询时,条件放在数组内,也就是[]内
单个条件查询
查询一个字段的多种信息
使用$in
多条件查询
- 使用$and
- 不使用$and
注意:对于同一字段的多条件可以写成这种
上面和$and效果一样
但是对于不同字段不能写成这种
这个是表示只要满足条件之一就可以,并不符合同时满足所有条件的要求
内嵌文档查询
什么叫内嵌文档
就是文档里面的字段的值又是一个文档
内嵌文档查询命令如下:
注意:要将内嵌文档放在引号内部
数组字段查询
精确匹配
值的内容,顺序完全一致
非精确匹配
使用关键字$all,只要包含了给的元素就可以了,不管顺序
查询数组里的一个元素
只要数组包含了这个元素就可以,并不是说有且只有,显示包含了该元素的所有文档
求数组中某个元素同时满足多个条件
使用关键字$elemMatch
查询数组具体的一个元素
如查询chicun字段的第二个元素,注意同内嵌文档一样,要将查询的数组元素用chicun.X的形式放入引号内