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的Flask框架中使用模版的入门教程
Apr 20 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
使用python进行文本预处理和提取特征的实例
Jun 05 Python
python监控文件并且发送告警邮件
Jun 21 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Python属性和内建属性实例解析
Jan 14 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
python实现小程序推送页面收录脚本
Apr 20 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 Python
Python使用tkinter实现小时钟效果
Feb 22 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
Terran魔法科技
2020/03/14 星际争霸
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php你的验证码安全码?
2007/01/02 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
python字典按照value排序方法
2020/12/28 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
恶搞卫生巾广告词
2014/03/18 职场文书
个人委托书怎么写
2014/04/04 职场文书
个人投资合作协议书
2014/10/12 职场文书
师德师风事迹材料
2014/12/20 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
村主任当选感言
2015/08/01 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL