目录
一、MongoDB专业术语
二、表的操作
在操作前需要安装好MongoDB,配置好环境,并保证服务开启,安装地址:https://blog.csdn.net/raojiaxing_/article/details/106342696
(一)创建数据库和删除数据库
显示数据库
创建数据库,创建表
第一种删除数据库的方式,清空表。
注意,如果该car数据库中没有任何表,那么该数据库就会消失
第二种删除数据库的方式,命令
创建表(带参数)
capped:可覆盖
size:大小 单位(kb)
(二)插入文档insert
crud的命令集合格式:
use 数据库----切换到指定数据库
db.集合名.CRUD对应方法名-----db.集合.做啥事
1、插入单条
插入数据
查看数据
2、插入多条文档
_id:系统自动指定,当我们插入文档的时候不指定__id,系统会自动创建,同时将这个字段作为主键和在这个字段位置创建索引。
_id不能重复,报错清空如下:
(三)查询find
语法格式:
db.集合.find(
查询表达式,
option,可选参数
)[.pretty()]
pretty() 可写可不写,表示输出的格式美观。
option: 表示那些列显示那些列不显示
{field1:1/0}---1:显示,0:不显示
sql中where字句。类似于查询表达式。
1、 范围匹配
- 等于:{field:value}表示field=value
- $lt---小于:{field:{$lt:value}}表示:field<value
- $gt---大于:{field:{$gt:value}}表示:field>value
- $lte---小于等于:{field:{$lte:value}}表示:field<=value
- $gte--- 大于等于:{field:{$gte:value}}表示:field>=value
- $ne---不等于:{field:{$ne:value}}表示:field!=value
2、复杂的条件—逻辑关系
且:{$and:[{条件1},{条件2},{条件3}.....]}
或::{$or:[{条件1},{条件2},{条件3}.....]}
非:{$nor:[{条件1},{条件2},{条件3}.....]}
3、案例
查询表结构:
先插入数据
实例1:查询goods_id为4的商品,不显示_id字段
先普通查看
加入条件筛选
可选参数使用:显示那些列指定1即可,其他列(除了_id以外)都会不显示。
实例2:取出不属于第3栏目且不属于第11栏目的商品
方式1 $nin:
方式2 $and:
方式3 $nor:
实例3:取出价格大于100且小于300,或者大于4000且小于5000的商品
sort函数:
(四)删除remove
语法格式:
db.集合名.remove(
{查询表达式},
options
)
options:{justOne:true/false}:
默认是 false(全部删除),
true:只删除一条
实例:在goods集合中删除goods_id为1的文档。
(五)更新(重点)
语法:
db.集合.update(
{查询表达式},
更新的内容,
options,
)
options:{
upsert:有则更新,无则插入,
multi:是否更新多个,默认是false,只更新一条,如果为true,全部更新
}
(1)新文档替换旧文档(出题)
第二个参数:更新内容如果是一个文档,那么就是新文档替换旧文档。
(2)更新:
第二个参数:更新内容就必须是**更新表达式。**
更新表达式:
-
$set 修改某列的值(最常用)
-
将goods_id为3的商品价格变成2000
- $rename 重命名某个列
- 将goods_number小于2的文档的cilck_count改成count_click
-
l $inc 增长某个列m
-
将goods_id为11的商品的价格降低100
upsert=true可选参数:有则更新,无则插入,
有:查询表达式匹配到了数据---做更新
无:查询表达式没有找到数据----做插入
{
goods_id,#可以作为这条数据的唯一标识
good_name,
}
在爬虫中,一般不适用insert插入方法:每次插入的时候都会成功。如果爬虫运行了一半断了,我们重新启动爬虫,之前的爬下来的数据又会重新再尾部在插入一遍。配合增量爬虫
在爬虫中一般使用update方法作为数据保存方法。--配合upsert=true这种方式就是【增量爬虫】的一种措施。
(六)导入导出
mongoexport---导出
-d 库名
-c 集合名
-f field名 (不写就是全部导出,指定csv方式导出的时候必须指定列名)
-q 查询条件(查询表达式)(不写就是全部导出)
-o 导出的文件(文件的全路径)
--type 文件的类型(json,csv)——---默认就是json,如果json格式导出可以不写
1、导出json格式
也可以作为备份数据的一种方式
2、导出csv格式
mongoimport ---导入
-d 库名
-c 集合名
--file 导入的文件路径
批量导入json文件中数据。