Python使用PyMongo与MongoDB基础交互指南

顾星河
顾星河
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍Python中如何使用PyMongo库与MongoDB数据库进行基本交互。内容涵盖模块安装、模块导入、数据库连接、集合选择以及核心的CRUD(增删改查)操作方法,包括find、insert、update和delete系列函数的使用示例与注意事项。

PyMongo基础交互概述

本文介绍了在Python中利用PyMongo库与MongoDB数据库进行基础交互的完整流程,旨在为开发者提供实用的参考示例。

  • PyMongo的使用流程如下:
    • 模块安装
    • 模块导入
    • 连接MongoDB服务
    • 获取或切换数据库
    • 选择目标集合
    • 执行CRUD操作

环境准备与连接配置

首发时间:2018-03-18 20:11


  • 安装模块:
    
    pip3 pymongo 
  • 导入模块:
    
    import pymongo
  • 连接mongod服务:
    
    conn=pymongo.MongoClient(host="localhost",port=27017)
  • 获取或切换数据库:
    
    # db=conn.School #获取School数据库 db=conn['School'] #获取School数据库
  • 选择集合:
    
    # collection=db.teacher#选择teacher集合 collection=db['teacher']#选择teacher集合
  • 执行CRUD操作:【PyMongo的方法与MongoDB命令基本一致,功能相似的功能名称也类似,参数设置可参考MongoDB命令及源码说明】
    • 查看文档:
      • find()方法返回一个Cursor对象,必须通过迭代该对象才能获取具体的查询结果。
      • find_one()方法直接返回查找到的单个文档结果。
      • 
        import
        pymongo conn=pymongo.MongoClient(host="localhost",port=27017) db=conn['School'] collection=db['teacher'] rel=collection.find() print([r for r in rel]) rel=collection.find({"name":"Alex"}) print([r for r in rel]) # rel=collection.find({"age":{"$gt":20}}) rel=collection.find({"$or":[{"name":"Amy"},{"name":"Alex"}]}) print([r for r in rel]) rel=collection.find_one({"name":"jack"}) print(rel) print(rel['name'])#单个文档情况下可用来取出指定值
              
        conn.close()
    • 插入文档:
      • insert()用于插入单条文档,若需插入多条文档可传入列表,但该方法已不再推荐。
      • insert_one()专门用于插入单条文档,是推荐的使用方式。
      • insert_many():用于插入多条文档
        
        import
        pymongo conn=pymongo.MongoClient(host="localhost",port=27017) db=conn['School'] collection=db['teacher'] collection.insert({"name":"Job","course":"career"}) # col.insert(document)#**DEPRECATED** - Use :meth:`insert_one` or :meth:`insert_many` instead.
        
        #
        insert是不推荐用了,建议使用insert_one,insert_many collection.insert_one({"name":"Job1","course":"career1"}) t1={"name":"Job2","course":"career2"} t2={"name":"Job3","course":"career3"
        }
        collection.insert_many([t1,t2])
        conn.close()
    • 修改文档:
      • update()用于修改单条或多条文档,具体行为由multi选项决定,但该方法已不推荐使用,建议改用update_one()或update_many()。
      • update_one()用于精确修改符合条件的第一条文档。
      • update_many()用于修改所有符合条件的文档。
      • 
        import
        pymongo conn=pymongo.MongoClient(host="localhost",port=27017) db=conn['School'] collection=db['teacher'] # rel=collection.update({"name":"Job1"},{ "$set":{"name":"Bob"}})#不推荐使用
        
        #
        collection.update_one({"name":"Job"},{ "$set":{"name":"Bob"}}) collection.update_many({"name":"Job1"},{ "$set":{"name":"Bob"
        }})
        
        conn.close()
    • 删除文档:
      • remove()用于删除指定文档,但该方法已不再推荐,建议使用delete_one()和delete_many()。
      • delete_one()用于删除符合条件的一条文档。
      • delete_many()用于删除所有符合条件的文档。
      • 
        import
        pymongo conn=pymongo.MongoClient(host="localhost",port=27017) db=conn['School'] collection=db['teacher'] # collection.remove({"name":"Bob"})
        
        #
        collection.delete_one({"name":"Bob2"}) collection.delete_many({"name":"Job3"
        })
        conn.close()

数据增删改查操作详解

如需了解更多详细信息,可参考PyMongo官方文档:http://api.mongodb.com/python/current/api/pymongo/

参考资源与总结

更多关于Python技术内容的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望本文所述内容能对大家的Python程序设计工作有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。