Python 操作mongodb库

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB 是一个基于分布式文件存储的数据库。

Python 操作mongodb库



文章目录


1 mongodb介绍


1.1 mongodb基础概念

1.2 mongodb优缺点

2 mongodb 下载安装

3 python 操作mongodb

3.1 python 安装pymongo库

3.2 Python对 mongodb增删改查


1 mongodb介绍


MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决


MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。


1.1 mongodb基础概念


在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:

image.png

1、一个mongodb实例可以创建多个数据库

2、一个数据库可以创建多个集合

3、一个集合可以包括多个文档。

微信图片_20221012213618.png

1.2 mongodb优缺点

优点:
1.读写效率高:由于文档模型把相关数据集中在-块,在普通机械盘上读数据的时候不用花太
多时间去定位磁头,因此在IO性能上有先天独厚的优势
2.可扩展能力强:关系型数据库很难做分布式的原因就是多节点海量数据关联有巨大的性能问
题。如果不考虑关联,数据分区分库,水平扩展就比较简单;
3.动态模式:文档模型支持可变的数据模式,不要求每个文档都具有完全相同的结构,例如在
同一个文档中支持同一一个字段拥有不同的数据类型,对很多异构数据场景支持非常好。
4.模型自然:文档模型最接近于我们熟悉的对象模型,支持数组和嵌套对象作为值。从内存到
存储,无需经过ORM的双向转换,性能上和理解上都很自然易懂。
5.强大的查询语言:丰富而富有表现力的查询语言,使您可以按任意字段进行过滤和排序,无
论它在文档中有多嵌套。支持聚合和其他现代用例,例如基于地理的搜索,图形搜索和文本搜
索。查询本身就是JSON ,因此很容易组合。不再需要串联字符串来动态生成SQL查询。
缺点:
与关系型数据库,比如mysq|截然不同的查询语法,需 要重新学习mongodb的操作语法。 哈哈

2 mongodb 下载安装


可以看 无羡 博主的内容 MongoDB数据库入门到精通


3 python 操作mongodb


随着不断的学习内容python也安装了很多库,使用之前如何查找是否已经安装了该库可以将将已安装的库列表保存到文本文件夹中 然后去文件里搜索是否已经安装了

pip freeze >C:\Users\Administrator\Desktop\install.txt

安装文本文件中所有库

pip install -r  C:\Users\Administrator\Desktop\install.txt

3.1 python 安装pymongo库


普通安装 :

pip install pymongo

卸载已安装的库:

pip uninstall pymongo

3.2 Python对 mongodb增删改查

1. 导入pymongodb 模块:import pymongo
待补充

代码

import pymongo
#   建立连接
client = pymongo.MongoClient()
#   指定数据库   (不存在则会新建)
db = client['py_mongo']
#   删除数据库
# client.drop_database('py_mongo_temp')
#   创建集合
# db.create_collection('col_temp')
#   删除集合
# print(db.drop_collection('col_temp'))
#   指定集合     (不存在则会新建)
collection = db['mongo_col']
# collection = pymongo.MongoClient()['py_mongo']['mongo_col']

insert() 、 remove() 、 update() 、 find()

#   增   insert()
#   如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId
#   增加一条
# collection.insert({'_id':1,'name':'JiYu','num':0})
#   增加多条
# collection.insert(  [
#     {'name':'jiyu','num':12},
#     {'name':'jiyu','num':34},
#     {'name':'nianhua','num':12},
#     {'name':'nianhua','num':34},
# ]   )
#   删   remove()
#   删除集合中满足条件的所有文档
# collection.remove({'name':'jiyu'})
#   只删除集合中满足条件的第一条文档
# collection.remove({'name':'nianhua'},multi=False)
#   删除所有
# collection.remove()
#   改   update()
#   修改一条数据  只有name,没有num了,整条数据变成<update>里的内容
# collection.update({'name':'jiyu'},{'name':'nianhua'})
#   指定属性修改  $set
# collection.update({'name':'jiyu'},{'$set':{'name':'nianhua'}})
#   修改集合中所有满足条件的文档:multi: true
# collection.update({'name':'nianhua'},{'$set':{'name':'NianHua'}},multi=True)
#   查   find()
#   查询所有
# for i in collection.find():
#     print(i)
#   根据条件查询
# for i in collection.find({'name': 'NianHua'}):
#     print(i)
#   and 和 or 条件
# condition = {'$or': [{'num': 12}, {'name': 'NianHua'}]}
# for i in collection.find(condition):
#     print(i)
#   操作符
# for i in collection.find({'num': {'$gt': 20}}):
#     print(i)



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
24天前
|
XML JSON 数据库
Python的标准库
Python的标准库
162 77
|
2月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
2月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
85 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
102 4
数据分析的 10 个最佳 Python 库
|
25天前
|
XML JSON 数据库
Python的标准库
Python的标准库
47 11
|
2月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
133 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
2月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
25天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
2月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
100 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4