Python操作MongoDb数据库流程详解


Posted in Python onMarch 05, 2020

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python Socket网络编程
Jan 05 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
Python语言描述随机梯度下降法
Jan 04 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
python smtplib发送带附件邮件小程序
May 22 Python
python实现傅里叶级数展开的实现
Jul 21 Python
Python数据类型之Tuple元组实例详解
May 08 Python
python redis连接 有序集合去重的代码
Aug 04 Python
django实现类似触发器的功能
Nov 15 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
Python文字截图识别OCR工具实例解析
Mar 05 #Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 #Python
python+OpenCV实现图像拼接
Mar 05 #Python
windows下Pycharm安装opencv的多种方法
Mar 05 #Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 #Python
浅谈Python的方法解析顺序(MRO)
Mar 05 #Python
python环境下安装opencv库的方法
Mar 05 #Python
You might like
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
PDO::commit讲解
2019/01/27 PHP
Javascript之文件操作
2007/03/07 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
如何使用python写截屏小工具
2020/09/29 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
类的返射机制中的包及核心类
2016/09/12 面试题
建筑班组长岗位职责
2014/01/02 职场文书
工程项目建议书范文
2014/03/12 职场文书
英文求职信范文
2014/05/23 职场文书
医院义诊活动总结
2014/07/04 职场文书
顶岗实习协议书
2015/01/29 职场文书
安全责任书
2015/01/29 职场文书
表彰大会新闻稿
2015/07/17 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python