作者:Magic来源:恒生LIGHT云社区概述在爬虫相关的项目中,有时候需要爬取各种数据结构的数据。为了更方便的存储,我们通常使用MongoDB进行存储。本文将使用Python连接MongoDB进行数据的增删改查。读者需要对Python或MongoDB有一定的了解才能更快上手。环境准备系统:Windows10x64Python:版本:3.7开发工具:PycharmMongoDB:版本:4.x可视化工具:MongoDBCompass操作步骤启动Mongo服务首先在本地启动MongoDB服务,使用MongoDBCompass连接数据库服务:安装工具包然后在开发工具Pycharm上安装工具库pymongo(pymongo是驱动程序,使python程序可以使用MongoDB数据库,是用python编写的):写入并检查连接新建一个.py文件,写入MongoDB的连接程序,并通过查询验证是否连接成功:#将MongoClient导入pymongo库frompymongoimportMongoClient#连接MongoDB数据库,通过URL访问client=MongoClient('mongodb://localhost:27017/')#检测客户端连接,可以检查文档数据是否可以正常queryforiinclient.newdb.lightmap.find({}):print(i)If没有报错并成功打印输出,连接成功:{'_id':ObjectId('61bc3f6d9e58737faea3c5cc'),'name':'故宫','city':'北京','country':'中国','gps':{'lat':116.403,'lng':39.924}}{'_id':ObjectId('61bc3f6d9e58737faea3c5cd'),'name':'长城','city':'北京','country':'China','gps':{'lat':106.384,'lng':39.031}}{'_id':ObjectId('61bc3f6d9e58737faea3c5ce'),'name':'白宫','城市':'华盛顿','国家':'美国','gps':{'lat':116.652,'lng':40.121}}{'_id':ObjectId('61bc3f6d9e58737faea3c5cf'),'name':'LondonEye','city':'London','country':'UK','gps':{'lat':116.348,'lng':34.43}}编写程序操作MongoDB数据库#添加或获取数据库,如果数据库(new_db)不存在,系统会自动创建数据库(new_db)new_db_one=client.new_db_one#查询数据库列表db_names=client.list_database_names()print(db_names)#删除已有的databaseclient.drop_database('new_db_one')collectionoperation#添加collection操作,如果collection_name集合不存在则创建,如果存在则直接插入数据client.new_db_one.collection_name.insert_one({'light':'hs'})#集合查询操作,查询对应数据库的集合名称列表client.new_db_one.list_collection_names()#集合的删除操作client.new_db_one.collection_name.drop()document的操作#新建document的操作,添加一个集合collection_nameclient.new_db_one的新文档。collection_name.insert_one({'light':'hs'})foriinclient.new_db_one.collection_name.find({}):print(i)#document的新建操作,添加一个documentclient到collectioncollection_name.new_db_one.collection_name.replace_one({'light':'hs'},{'hs2':'light2'})foriinclient.new_db_one.collection_name.find({}):print(i)#添加文件操作,添加文档到集合collection_nameclient.new_db_one.collection_name.find({'hs2':'light2'})foriincclient.new_db_one.collection_name.find({}):print(i)#删除文档,删除第一个匹配的数据client.new_db_one.collection_name.delete_one({'hs2':'light2'})foriinclient.new_db_one.开发中遇到的问题在哪里讨论?如何获取海量金融科技资源?恒生LIGHT云社区,恒生电子打造的金融科技专业社区平台,分享实用技术干货、资源数据、金融科技行业动态,拥抱所有金融开发者。扫描下方小程序二维码加入我们吧!
