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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
Python入门_条件控制(详解)
May 16 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
详解K-means算法在Python中的实现
Dec 05 Python
Django中的forms组件实例详解
Nov 08 Python
python 使用值来排序一个字典的方法
Nov 16 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python tkinter实现彩球碰撞屏保
Jul 30 Python
django 环境变量配置过程详解
Aug 06 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 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通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
Python流程控制 while循环实现解析
2019/09/02 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
python-地图可视化组件folium的操作
2020/12/14 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
hive数据仓库新增字段方法
2022/06/25 数据库