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 相关文章推荐
Mac 上切换Python多版本
Jun 17 Python
使用Pyinstaller的最新踩坑实战记录
Nov 08 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
在vscode中配置python环境过程解析
Sep 28 Python
python实现根据文件格式分类
Oct 31 Python
django实现类似触发器的功能
Nov 15 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Python使用random模块实现掷骰子游戏的示例代码
Apr 29 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 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
数据库中排序的对比及使用条件详解
2012/02/23 PHP
php绘制圆形的方法
2015/01/24 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
看了就知道什么是JSON
2007/12/09 Javascript
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
vue.js中created方法作用
2018/03/30 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
上海方立数码笔试题
2013/10/18 面试题
团日活动策划书
2014/02/01 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
2014组织生活会方案
2014/05/19 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
高中政治教师教学反思
2016/02/23 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android