Python操作Mongodb数据库的方法小结


Posted in Python onSeptember 10, 2019

本文实例讲述了Python操作Mongodb数据库的方法。分享给大家供大家参考,具体如下:

一 导入 pymongo

from pymongo import MongoClient

二 连接服务器 端口号 27017

连接MongoDB

连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入MongoDB的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认是27017。

conn = MongoClient("localhost")
MongoClient(host='127.0.0.1',port=27017)

三 连接数据库

db = conn.数据库名称

连接集合

collection = db[collection_name]

or

collection = db.collection_name

查看全部聚集名称

db.collection_names()

四 插入数据

(1) 插入一条数据

db.user.insert({"name":"夏利刚","age":18,"hobby":"学习"})

(2) 插入多条数据

db.user.insert([{"name":"夏利刚","age":18,"hobby":"学习"},{"name":"xxxoo","age":48,"hobby":"学习"}]

(3) 在3.x以上 建议 使用

insert_one 插入一条数据
insert_many() 插入多条数据

(4) 返回 id 使用insert_one()

data.inserted_id
data.inserted_ids

五 查询数据

(1) 查询所有

db.user.find()
#带条件的查询
# data = db.user.find({"name":"周日"})
# print(data) #返回result类似一个迭代器 可以使用 next方法 一个一个 的取出来
# print(next(data))  #取出一条数据

(2) 查询一条

db.user.find_one()

(3) 带条件查询

db.user.find({"name":"张三"})

(4) 查询 id

from bson.objectid import ObjectId*#用于ID查询
data = db.user.find({"_id":ObjectId("59a2d304b961661b209f8da1")})

(5) 模糊查询

(1)

{"name":{'$regex':"张"}}

(2)

import re {'xxx':re.compile('xxx')}

六 sort limit count skip

(1) sort 排序

年龄 大于10

data = db.user.find({"age":{"$gt":10}}).sort("age",-1) #年龄 升序 查询 pymongo.ASCENDING --升序
data = db.user.find({"age":{"$gt":10}}).sort("age",1) #年龄 降序 查询 pymongo.DESCENDING --降序

(2) limit 取值

取三条数据

db.user.find().limit(3)
data = db.user.find({"age":{"$gt":10}}).sort("age",-1).limit(3)

(3) count 统计数据条数

db.user.find().count()

(4) skip 从第几条数据开始取

db.user.find().skip(2)

七 update 修改

update()方法其实也是官方不推荐使用的方法,在这里也分了update_one()方法和update_many()方法,用法更加严格,

(1) update()

db.user.update({"name":"张三"},{"$set":{"age":25}})
db.user.update({"name":"张三"},{"$inc":{"age":25}})

(2) update_one() 第一条符合条件的数据进行更新

​ db.user.update_one({"name":"张三"},{"$set":{"age":99}})

(3) update_many() 将所有符合条件的数据都更新

db.user.update_many({"name":"张三"},{"$set":{"age":91}})

(4) 其返回结果是UpdateResult类型,然后调用matched_count和modified_count属性分别可以获得匹配的数据条数和影响的数据条数。

print(result.matched_count, result.modified_count)

八 remove 删除

删除操作比较简单,直接调用remove()方法指定删除的条件即可,符合条件的所有数据均会被删除,

(1) 删除 张三

collection.remove({"name":"lilei"})

(2) 全部删除

collection.remove()

(3) 依然存在两个新的推荐方法,delete_one()和delete_many()方法,示例如下:

delete_one()即删除第一条符合条件的数据
collection.delete_one({"name":" Kevin"})
delete_many()即删除所有符合条件的数据,返回结果是DeleteResult类型
collection.delete_many({"age": {$lt:25}})

(4) 可以调用deleted_count属性获取删除的数据条数。

result.deleted_count

九 关闭连接

conn.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
浅谈Python单向链表的实现
Dec 24 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
Python3内置模块random随机方法小结
Jul 13 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
Python 正则模块详情
Nov 02 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 #Python
Python matplotlib绘制饼状图功能示例
Sep 10 #Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 #Python
python+pygame实现坦克大战
Sep 10 #Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 #Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 #Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 #Python
You might like
PHP中实现图片的锐化
2006/10/09 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
详解Python中的文件操作
2016/08/28 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
sort命令的作用和用法
2013/08/25 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
创业计划书模版
2014/02/05 职场文书
大专学生求职自荐信
2014/07/06 职场文书
助学贷款贫困证明
2014/09/23 职场文书
民间个人借款协议书
2014/09/30 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
导游词之河北邯郸
2019/09/12 职场文书
python中if和elif的区别介绍
2021/11/07 Python