MongoDB系列2-基本操作
介绍MongoDB
的基本操作,包含以下几个方面,在爬虫中使用最多的是往MOngoDB
中插入数据
- 增:insert()
- 查:find()
- 逻辑查询
- 结果排序-sort
- 更新-update
- 删除-delete
- 去重-distinct
增加
插入操作使用的是insert,参数是Python的字典类型数据
1 | from pymongo import MongoClient |
爬虫中主要用MongoDB来存储数据,用的就是insert方法
查找-find
查找数据使用的方法是find
1 | find(查询条件,返回字段) # 多条信息 |
参数都是字典类型,可以省略;爬虫中用的多的是find()
方法,例如:
1 | # 情形1 |
- 第二个参数指定返回的内容:0表示不返回,1表示返回
_id
必须人工指定其值0,才不会返回;其他数据统一返回,或者统一不返回find()
方法返回的是可迭代的PyMongo
对象,可以被for循环展开,展开得到字典,字典对应的是每条记录
1 | content = [x for x in collection.find({'age':20},{'_id':0,'name':1,"salary":1})] |
逻辑查询
PyMongo
也支持大于、小于、大于等于等逻辑查询,见表格:
使用方法:
- 指定字段
- 指定查询范围,范围也是字典的形式
1 | collection.find({'age':{'$gt':29}}) |
结果排序-sort
将结果查询find
出来之后可以通过sort
方法进行排序,两个参数:
- 指定的字段
- -1表示降序,1表示升序
1 | collection.find().sort('列名',1或-1) |
使用的案例:
1 | collection.find({'age':{'$gte':29,'$lte':40}}).sort('age',-1) # 先查询,再降序排列 |
更新-udpate
更新数据的两个方法:
1 | collection.update_one(参数1,参数2) # 更新一条 |
两个参数都是字典,且都不能省略
两个参数都是字典,且都不能省略
两个参数都是字典,且都不能省略
使用的案列如下:
1 | collection.update_one({'age':20}, # 将第一个年龄为20的人的名字改为xiaoming |
删除-delete
删除数据的两种方法:
- delete_one():删除一条
- delete_many():删除多条
参数都是字典,不建议省略
1 | collection.delete_one({'age':20}) # 删除一条 |
结果去重-distinct
去重使用的是distinct()
方法
1 | collection.distinct('字段名称') |