本次章节学习一下MongoDB语法
一、MongoDB特点
它的存储模型与关系数据库的比较如图:
关系数据库(MySql) | MongoDB |
DataBase | DataBase |
table | Collection |
row | document/object |
关系数据库中最基本单元是行,而MongoDB中最基本单元是document
打开客户端
切换数据库,如果数据库不存在则创建数据库
在关系数据库中创建完数据库创建表,在MongoDB中是创建集合Collection,循环插入集合,提示成功。
下面介绍增、删、改、查
1、增
查看插入的集合:
这是集合也叫文档
查看数据库
不插入集合,只是用use demo 在这里面 是看不到demo数据库的
2、删,删除id为5的文档
3、改,修改id为6的 name 为 "wei"
4、查。查询id为6 年龄为16的文档
查询id为6的文档
查询年龄小于16的文档
$lt:表示小于
$lte:表示小于或等于
$get:表示大于
$gt::表示大于或者等于
上述可以组合使用 例如 age:{$lt:16,$get:12}表示年龄小于16 大于12的文档
$in:在某些范围内 例如 id:{$in:[1,2]} id为1和2的文档
$nin :不在某些范围内,该操作为全文档扫描,最好不要单独使用
$ne:不等于
$or:表示或运算
$and:表示与运算
MongoDB可以进行嵌套查询例如:插入文档
查询看结果,sort是排序 按照Id排序,1为 正序排序,如果是-1为倒序排序
查询 post 为 jl的记录,注意 detail.post 也有引号括起来
5、查询投射,所谓投射就是查询需要的字段。
前面括号中的为查询条件,后面的为查询字段,_id:0 0代表不显示
6、 数组查询
插入一数组
查询下结果
数组查询 ①精确查询
②查询数组中一个值
③查询指定位置的值 第一个位置 为法语的记录 位置数是从0开始
创建一复杂的文档
其中字段 statusinfo是一个嵌套文档数据。
通过投影返回指定的字段
只返回desc
返回当前最新状态,通过专门针对数组投射的操作符 $slice 来完成
$slice -1 数组最后一个元素 如果是1 是数组第一个元素
MongoDB不支持关系数据库中标准的查询语句,它有自己的一套查询语言。但是基本上能实现关系数据库中的查询。
查询选择器等同于 where,查询投影等同于select。MongoBD没有join连接,但是数据类型可以嵌套,可以组装成不同的结构模型。