您的位置:首页 > 数据库 > Mongodb

在Python中使用pymongo操作mongodb

2017-08-01 09:14 543 查看
最近在学习Python爬虫,平常将爬取的数据都存入Excel表格中,但是当数据量大的时候存取和查、删、改就不方便了,这时数据库就是你很好的选择了(其实我就是觉得使用Excel好low而已),在学习的过程中开始接触mongodb这个数据库,mongodb是一种非关系型数据库,数据存取的形式与Python中的字典很相似,所以在Python中使用mongodb是一个不错的选择,废话不多说,下面总结一下我最近学习的东西:

1、在Windows上安装pymongo

这部分就不多说了,安装还是挺简单的,没有出现像其他一些包安装的问题(没错,我说的就是scipy,scrapy等包)

2、使用pymongo初始化数据库

from pymongo import MongoClient

client = MongoClient()
#创建数据库,两种方式
db = client.peopleinfo     #方式一
db = client['peopleinfo']  #方式二

#创建数据表,两种方式
col = db.person
col = db['person']


首先从pymongo中导入MongoClient,如果mongodb是运行在本地电脑上的,则MongoClient()中不需要任何参数,如果是在远程服务器上运行的,则实例化时需要参数,参数就是IP和端口,有两种形式,参数形式和URI形式如下:

#参数形式
client = MongoClient(host='远程IP', port=27017) #端口号默认为27017是数值
#URI形式
client = MongoClient('mongodb://远程IP:27017')


上面两种创建数据库的方式都是可以的,但是如果批量操作数据库的时候,第二种方式的优势就凸显出来了,我们来看看下面的代码:

database_name = ['db1', 'db2', 'db3', 'db4',...]
for each in database_name:
db = client[each]
col = db.test
...


上面的代码将要创建的多个数据库名称存放在列表中,通过一个for循环就可以创建多个数据库,并为每个数据库创建名为test的数据表(在mongodb中其实应该叫集合collection),当然也可以进行其他的批量操作

3、插入

mongodb的插入操作使用的是insert()函数,插入的内容就是Python的字典,如下:

data = {'id':123, 'name':'Neil', 'age':80, 'sex':'male'}
col.insert(data)


运行代码,通过Robo这个mongodb的图形交互界面来查看,结果如下



从图片中可以看到,数据已经成功的插入到数据库中,但是发现数据库中的数据不是按照字典中的顺序排的,mongodb中显示是随机的,但是不影响,还发现前面多了一个“_id”字段,这个是mongodb自动添加的

4、更新

更新操作使用的是update_one(参数1, 参数2)或者update_many(参数1, 参数2),前者是更新一条信息,后者是更新多条信息,参数1和参数2都是字典且不能省略,参数1是查询条件,参数2是更新内容代码如下:

#将第一个男性年龄改为20
col.update_one({'sex':'male'}, {'$set':{'age':20}})

#将所有男性年龄改为20
col.update_many({'sex':'male'},{'$set':{'age':20}})


5、查找

mongodb实现查找的功能的函数是:find(参数)、find_one(参数),参数为字典,顾名思义,find_one(参数)一次直返回一条信息

参数也可以省略:

content = col.find()#返回集合col中的所有内容
content = col.find({'age':20})#查找所有年龄为20的记录信息


6、删除

删除使用的方法同样也是两个:delete_one(参数),delete_many(参数),参数也都是字典,delete_one(参数)删除一条符合条件的记录,delete_many(参数)删除所有符合条件的记录

col.delete_one({'name':'Neil'})#删除名字为Neil的记录
col.delete_many({'age':20})#删除所有年龄为20的记录


7、总结

这就是pymongo的一些主要的功能,想要深入了解更多的内容可以参考pymongo的官方文档:https://docs.mongodb.com/getting-started/python/client/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息