一、mongodb的概述
1 它是什么?
MongoDB就是一个非关系型数据库(文档数据库)
2 为什么要学习它?
- 企业需求(要求爬虫开发工程师必须会这个技术)
- 爬虫的数据如果上了一个量级,使用MongoDB会比Mysql好一些
- scrapy_redis适用性小(并不是所有的公司都要用分布式)
3 mongodb的特点?
3.1 无数据结构(方便做爬虫)
3.2 高性能(具有非常高的读写性能)
3.3 良好的支持(完善的文档 跨平台 稳定)
二、mongodb的安装
第一步 下载安装文件(注意:data目录是数据存储目录,数据库中的数据就存储在这个目录中。log是日志文件的输出目录。这两个目录尽量不要改)
第二步 把bin目录添加到path环境变量里面 (C:\Program Files\MongoDB\Server\4.4\bin)
**启动MongoDB mongodb --dbpath C:\Program Files\MongoDB\Server\4.4\data
**链接 mongo #不需要cd
三、mongodb的基本命令
基础知识:文档–>集合(表)–>数据库
cls 清屏的命令
show dbs 展示数据库
use admin 使用数据库/创建数据库
db 查看现在用的数据库
show collections / show tables 查看当前使用数据库的集合(表)
db.demo.dropDatabase()
四、增加数据
自动创建表(当没有这个表的时候 我们插入一条数据 这个表自动被创建出来了)
db.jerry.insert({x:1})
手动创建
db.createCollection()
db.createCollection('jerry_collection')
参数
第一个参数 表名
capped 默认为False 不设置上限 True 就是有上限
size 表示设置上限的大小 字节 如果设置的大小小于256就默认是256
db.jerry1.isCapped() 返回值fasle没有上限 true有上限
db.jerry_collection.drop() 删除表
插入多条数据
db.jerry2.insert([{name:'jerry',age:18,gender:'male'},{name:'juran'}]) 记住要用到[]
for(i=3;i<10;i++)db.jerry3.insert({x:i})
指定了id 然后就找到这条记录做更新,反之就插入
db.jerry3.save({_id:ObjectId("60d08f386bd683f7c417e0ac"),name:'jerry',gengder:'male'})
db.jerry3.save({name:'jerry',gender:'male'})
五、查询数据
db.stu.find() 查询数据/可以在括号里面精确查找
db.stu.find({name:'jerry'}).pretty()
db.stu.find({age:18})
db.stu.findOne({age:18}) 把满足结果的第一条数据返回
db.stu.find({age:18,hometown:'衡阳'}) 多个条件查找
db.stu.find({age:{$gt:18}}) 年龄大于18
db.stu.find({age:{$gte:18}}) 年龄大于等于18
db.stu.find({age:{$gt:18},hometown:'长沙'}) 查找年龄大于18岁并且家乡是长沙的
db.stu.find({$or:[{age:{$gt:18}},{gender:false}]}) 查询年龄大于18或者性别为false
db.stu.find({$where:function(){return this.age>18}})定义方法查询 年龄大于18
六、操作查询结果
db.stu.find({age:18}).count() 返回查询结果的数量
db.stu.find().skip(2).limit(2) 先跳过2条数据 在返回满足结果的前2条数据
# 映射
指定返回的字段
如果为1返回该字段 映射主key(id) 需要_id:0
排序
db.stu.find().sort({age:1}) 按照年龄升序
db.stu.find().sort({age:-1}) 按照年龄降序
其他的看语雀
小技巧:
- ctrl+c 和右键:复制与黏贴