Python操作MongoDb数据库
1.简介
MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(NoSQL,Not Only SQL)数据库中比较像关系型数据库的一个,具有免费、操作简单、面向文档、自动分片、可扩展性强、查询功能强大等特点,对大数据处理支持较好,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
2.应用
MongoDB数据库可以到网站https://www.mongodb.org/downloads下载,安装之后打开命令提示符环境并切换到MongoDB安装目录中的server\3.2\bin文件夹,然后执行命令mongod --dbpath D:\data --journal -- storageEngine=mmapv1启动MongoDB,当然需要首先在D盘根目录下新建文件夹data。
让刚才那个命令提示符环境始终处于运行状态,然后再打开一个命令提示符环境,执行mongo命令连接MongoDB数据库,如果连接成功的话,会显示一个>符号作为提示符,之后就可以输入MongoDB命令了。
打开或创建数据库students
>use students
在数据库中插入数据
>zhangsan = {‘name’: ‘Zhangsan’, ‘age’: 18, ‘gender’: ‘male’}
>db.students.insert(zhangsan)
>lisi = {‘name’: ‘Lisi’, ‘age’: 19, ‘gender’: ‘male’}
>db.students.insert(lisi)
查询数据库中的记录
>db.students.insert(lisi)
查询数据库中的记录
>db.students.find()
查看系统中所有数据库名称
>show dbs
3.pymongo模块
#! /usr/bin/env python3 # -*- coding:utf-8 -*- # Author : MaYi # Blog : http://www.cnblogs.com/mayi0312/ # Date : 2019-12-25 # Name : test01 # Software : PyCharm # Note : 应用pymongo模块操作MongoDB数据库 # 导入模块 import pymongo # 连接数据库,27017是默认端口 client = pymongo.MongoClient("localhost", 27017) # 获取数据库 db = client.students # 打印数据集合名称列表 print(db.collection_names) # 获取数据集合 res = db.students.find() print(res) for item in res: # 遍历数据 print(item) wangwu = {"name": "Wangwu", "age": 20, "sex": "male"} # 插入一条记录 db.students.insert(wangwu) for item in db.students.find({"name": "Wangwu"}): # 指定查询条件 print(item) # 获取一条记录 print(db.students.find_one()) print(db.students.find_one({"name": "Wangwu"})) # 记录总数 print(db.students.find().count()) # 删除一条记录 db.students.remove({"name": "Wangwu"}) # 创建索引 db.students.create_index([("name", pymongo.ASCENDING)]) # 更新数据库 db.students.update({"name": "Zhangsan"}, {"$set": {"age": 25}}) # 清空数据库 db.students.remove() # 插入多条数据 zhangsan = {"name": "Zhangsan", "age": 20, "gender": "male"} lisi = {"name": "Lisi", "age": 21, "gender": "male"} wangwu = {"name": "Wangwu", "age": 22, "gender": "female"} db.students.insert_many([zhangsan, lisi, wangwu]) # 对查询结果排序 for item in db.students.find().sort("name", pymongo.ASCENDING): print(item) # 入口函数 if __name__ == '__main__': pass
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人