python爬虫数据库 --关于Mongodb数据库语法

本文详细介绍了MongoDB数据库的基础知识,包括增删改查操作、游标使用、索引创建、数据导入导出和复制集功能。内容涵盖MongoDB的文档存储、查询表达式、游标遍历、索引类型以及数据备份与恢复方法。此外,还讲解了复制集的概念,以实现高可用性和数据冗余。
摘要由CSDN通过智能技术生成

Mongodb数据库

一、MongoDB简介

二、MongoDB基础增删改查操作

1、增:insert方法
2、删除:remove
3、更新:update
4、查: find
5、查询表达式:

三、游标操作

四、索引创建

1、btree索引
2、hash索引
3、常用命令:

五、MongoDB数据的导入导出

1、通用选项:
2、mongoexport 导出json格式的文件
3、Mongoimport 导入
4、mongodump 导出二进制bson结构的数据及其索引信息
5、mongorestore 导入二进制文件

六、replaction复制集

一、MongoDB简介

|SQL术语/概念 | MongoDB术语/概念 |解释/说明
|-database-|-database-|数据库
|table | collection |数据库表/集合
|row|document|数据记录行/文档
| column | field |数据字段/域
| index | index | 索引
| table joins | | 表连接, MongoDB不支持
| primary key | primary key | 主键, MongoDB自动将_id字段设置为主键

1、mongodb 文档数据库,存储的是文档(Bson->json的二进制化).
{name:‘zhangsan’,age:‘9’}
2、MongoDB特点:内部执行引擎为JS解释器, 把文档存储成bson结构,在查询时,转换为JS对象,并可以通过熟悉的js语法来操作.
2、mongo和传统型数据库相比,最大的不同:
传统型数据库: 结构化数据, 定好了表结构后,每一行的内容,必是符合表结构的,就是说–列的个数,类型都一样.
mongo文档型数据库: 集合中存储的每篇文档,都可以有自己独特的结构(json对象都可以有自己独特的属性和值)
mongo数据库的collection不用提前创建(可以隐式创建。)。关系型数据库的表必须提前创建
3、mongodb数据库bin目录下的文件意义
在这里插入图片描述
bsondump.exe :导出bsondump结构
mongo.exe:客户端—开启一个客户端,连接指定服务,crud
mongod.exe:服务端–开启一个mongo服务器
mongodump.exe:整体数据库导出(备份工具)
mongoexport.exe:导出易识别的json文档
mongofiles.exe:GridFS工具,内建的分布式文件系统
mongoimport.exe:数据导入程序
mongorestore.exe:数据恢复工具
mongos.exe:路由器(分片时使用)
mongostat.exe:监视程序

4、mongo入门命令
show dbs 查看当前的数据库
use databaseName 选库
show collections 查看当前库下的collection,show tables
如何创建库?
Mongodb的库是隐式创建,你可以use 一个不存在的库,然后在该库下创建collection,即可创建库
use dbname —ues一个不存在的库
db.createCollection(‘collectionName’) —在该库下面创建集合,就可以创建一个数据库
即可创建一个集合。
其实在MongoDB中,collection也是可以隐身创建的
db.collectionName.insert(document)
如何删除数据库和集合?
db.collectionName.drop()//删除集合
db.dropDatabase()//删除数据库

二、MongoDB基础增删改查操作
1、增:insert方法
首先要明确一点,MongoDB存储的时文档,文档其实就是json格式的对象。
语法:
db.collectionName.insert(document)
增加单篇文档:
db.collectionName.insert({title:’nice day’})
增加单个文档,并指定_id
db.collectionName.insert({_id:8,age:78,name:’lisi’})
增加多个文档
db.collectionName.insert(
[
{time:‘friday’,study:‘mongodb’},
{_id:9,gender:‘male’,name:‘QQ’}
]
)
2、删除:remove
语法:
db.collection.remove(查询表达式, 选项)
选项是指 {justOne:true/false},是否只删一行, 默认为false
注意:
1: 查询表达式依然是个json对象 {age:20}
2: 查询表达式匹配的行,将被删掉.
3: 如果不写查询表达式,collections中的所有文档将被删掉
例1:删除stu表中 sn属性值为’001’的文档
db.stu.remove({sn:’001’})
例2: 删除stu表中gender属性为m的文档,只删除1行.
db.stu.remove({gender:’m’,true});

3、更新:update
语法: db.collection.update(查询表达式,新值,选项)

改谁? — 查询表达式
改成什么样? – 新值 或 赋值表达式
操作选项 ----- 可选参数
例:
db.news.update({name:‘QQ’},{name:‘MSN’});
是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},结果: 文档中的其他列也不见了,改后只有_id和name列了,即–新文档直接替换了旧文档,而不是修改
如果是想修改文档的某列,可以用KaTeX parse error: Expected '}', got 'EOF' at end of input: ….update(query,{ set:{name:’QQ’}})
修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ame:'wuyong'},{ set:{name:‘junshiwuyong’}},{upsert:true});
如果有name=’wuyong’的文档,将被修改,如果没有,将添加此新文档
db.news.update({_id:99},{x:123,y:234},{upsert:true});
没有_id=99的文档被修改,因此直接插入该文档
multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
db.news.update({age:21},{$set:{age:22}},{multi:true});
则把news中所有age=21的文档,都修改
4、查: find
语法: db.collection.find(查询表达式,查询的列);
db.collections.find(表达式,{列1:1,列2:1});
在查询的列参数中,1表示显示,0表示不显示
例1:db.stu.find()
查询所有文档 所有内容
例2: db.stu.find({},{gendre:1})
查询所有文档,的gender属性 (_id属性默认总是查出来)
例3: db.stu.find({},{gender:1, _id:0})
查询所有文档的gender属性,且不查询_id属性
例4: db.stu.find({gender:’male’},{name:1,_id:0});
查询所有gender属性值为mal

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值