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选择排序算法的实现代码
Nov 21 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python实现接口并发测试脚本
Jun 25 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
Django 通过JS实现ajax过程详解
Jul 30 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
php UBB 解析实现代码
2011/11/27 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python编码最佳实践之总结
2016/02/14 Python
python 多个参数不为空校验方法
2019/02/14 Python
Django REST framework 分页的实现代码
2019/06/19 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
环保标语大全
2014/06/12 职场文书
优秀纪检干部材料
2014/08/27 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
教师远程研修感悟
2015/11/18 职场文书
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
MySQL学习之基础命令实操总结
2022/03/19 MySQL