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警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
用Python实现协同过滤的教程
Apr 08 Python
基于Python闭包及其作用域详解
Aug 28 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
python 阶乘累加和的实例
Feb 01 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
python用分数表示矩阵的方法实例
Jan 11 Python
PO模式在selenium自动化测试框架的优势
Mar 20 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中文分词的简单实现代码分享
2011/07/17 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
Symfony的安装和配置方法
2016/03/17 PHP
JQUERY操作JSON实例代码
2010/02/09 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
用Python编写web API的教程
2015/04/30 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
创先争优一句话承诺
2014/05/29 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
Python基础详解之描述符
2021/04/28 Python