认识mongodb
一、mongodb的概述
1、它是什么?
MongoDB就是一个非关系型数据库(文档数据库)
2、为什么要学习它?
- 企业需求(要求爬虫开发工程师必须会这个技术)
- 爬虫的数据如果上了一个量级,使用MongoDB会比Mysql好一些
- scrapy_redis适用性小(并不是所有的公司都要用分布式)
3、mongodb的特点?
- 无数据结构(方便做爬虫)
- 高性能(具有非常高的读写性能)
- 良好的支持(完善的文档,跨平台,稳定)
二、mongodb的安装
第一步:下载安装文件
不支持win7系统,自己使用的是win7系统,试了很多个版本都不得,最后还是老老实实的的把系统换成win10。-
第二步 :安装文件
路径建议默认
第三步: 把bin目录添加到path环境变量里面
(C:\Program Files\MongoDB\Server\4.4\bin)
三、MongoDB三元素:数据库、集合、文档
- 文档:就是关系型数据库中的一行。文档是一个对象,由键值对构成,是json的扩展形式。
{"name": "abc", "gender": 1}
- 集合:就是关系型数据库中的表。可以存储多个文档,结构可以不固定。
{"name": "abc", "gender": 1}
{"name": "abc", "age": 18}
{"title": "abc", "price": 1}
四、启动MongoDB
安装mongodb结束后直接启动不成功,最好重启再试启动
在cmder中输入下面的命令:
mongod --dbpath C:\Program Files\MongoDB\Server\4.4\data链接 mongo
五、mongodb的基本命令
show dbs :展示数据库
cls :清屏的命令
use admin: 使用数据库/创建数据库
db :查看现在用的数据库
show collections / show tables : 查看当前使用数据库的集合(表)
db.dropDatabase() :删除数据库 注意大写
六、插入数据
- 不手动创建表(当没有这个表的时候,我们插入一条数据,这个表自动被创建出来了)
db.yaoqi.insert({x:1})
db.yaoqi.find():查找表数据 - 手动创建
db.createCollection()
db.createCollection('jerry_collection')
参数
第一个参数: 表名
capped: 默认为False 不设置上限, True 就是有上限
size : 表示设置上限的大小,字节,如果设置的大小小于256就默认是256
db.yaoqi.isCapped(): 返回值fasle没有上限,true有上限
db.yaoqi.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():.pretty()规范打印
db.stu.find({age:18})
db.stu.findOne({age:18}) :把满足结果的第一条数据返回
db.stu.find({age:18,hometown:'衡阳'}) :多个条件查找
db.stu.find({age:{gte:18}}): 年龄大于等于18
db.stu.find({age:{or:[{age:{where:function(){return this.age>18}}):定义方法查询 年龄大于18
八、mongodb的保存
- 命令:db.集合名称.save(document)
db.stu.save({_id:ObjectId("5f169b37d74866264ed9a7db"), name:'gj', gender:2})
db.stu.save({name:'gj', gender:2})
db.stu.find()