红联Linux门户
Linux帮助

PyMongo模块的使用-MongoDB的Python接口

发布时间:2016-12-23 15:25:33来源:topspeedsnail.com作者:斗大的熊猫
MongoDB(https://github.com/mongodb/mongo)是近年来非常流行的开源NoSQL数据库,它使用JSON存储数据。
PyMongo是Mongo官方开发Python模块,用来操作MongoDB数据库。
我做的一个爬虫用到了MongoDB。
PyMongo文档:https://api.mongodb.com/python/current/
 
安装PyMongo
$ pip install pymongo  
# 安装特定版本
# pip install pymongo==3.4.0
 
查看PyMongo版本:
PyMongo模块的使用-MongoDB的Python接口
 
建立连接
要想操作MongoDB数据库,首先先建立连接。
from pymongo import MongoClient
# client = MongoClient()  # 不指定参数, 默认连接本地主机(localhost)和端口 (27017)
client = MongoClient('localhost', 27017)  # 指定要连接的主机和端口
# client = MongoClient('mongodb://localhost:27017') # 使用URI格式
 
访问数据库
连接到MongoDB之后就可以访问其中的数据库了。
# 两种访问方式
db = client['test_db']  # 数据库如果不存在,会自动创建
#db = client.test_db
 
插入数据
“collection”是数据库中一组文档,如下面的taobao_items。
taobao_items = db.taobao_items
items_desc = {
 'item': '爬虫陆龟蜗牛蜘蛛垫材 椰砖椰土乌龟冬眠过冬保暖保湿无菌土包邮',
 'price': 8.9,
 'seller': '爱上未来的你55555'
}
result = taobao_items.insert_one(items_desc)
print('插入的商品ID: {0}'.format(result.inserted_id))
items_desc = {
 'item': '飘落的雪—蚂蚁阁‖ 原生收获蚁 2016年 新后 现货',
 'price': 40.0,
 'seller': 'singermedy'
}
result = taobao_items.insert_one(items_desc)
print('插入的商品ID: {0}'.format(result.inserted_id))
PyMongo模块的使用-MongoDB的Python接口
 
insert_one()一次插入一条记录,如果要插入多条记录,它就比较慢了,可以使用insert_many()替代。
taobao_items = db.taobao_items
items_desc1 = {
 'item': '爬虫陆龟蜗牛蜘蛛垫材 椰砖椰土乌龟冬眠过冬保暖保湿无菌土包邮',
 'price': 8.9,
 'seller': '爱上未来的你55555'
}
items_desc2 = {
 'item': '飘落的雪—蚂蚁阁‖ 原生收获蚁 2016年 新后 现货',
 'price': 40.0,
 'seller': 'singermedy'
}
# ...
result = taobao_items.insert_many([items_desc1, items_desc2])
print('插入的商品ID: {0}'.format(result.inserted_ids))
 
查询
taobao_items = db.taobao_items
item = taobao_items.find_one({'seller': 'singermedy'})
print(item)
PyMongo模块的使用-MongoDB的Python接口
上面只查找一条记录,使用find查找所有匹配记录:
taobao_items = db.taobao_items
# 查找singermedy卖的所有商品
items = taobao_items.find({'seller': 'singermedy'})
print(items)
for item in items:
print(item)
我做的爬虫目前只使用到了这些最基本的操作;更多操作参看文档。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27184.html