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中列表和元组的相关语句和方法讲解
Aug 20 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
Python注释详解
Jun 01 Python
Python动态生成多维数组的方法示例
Aug 09 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
对Python w和w+权限的区别详解
Jan 23 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
python中entry用法讲解
Dec 04 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 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作的文本留言本的例子(四)
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
JS获取几种URL地址的方法小结
2014/02/26 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
Python多线程编程(五):死锁的形成
2015/04/05 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
python Django框架实现自定义表单提交
2016/03/25 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
学生会主席演讲稿
2014/04/25 职场文书
出生医学证明书
2014/09/15 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
用python画城市轮播地图
2021/05/28 Python
Javascript之datagrid查询详解
2021/09/15 Javascript