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完全新手教程
Feb 08 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
python使用super()出现错误解决办法
Aug 14 Python
使用Python的turtle模块画图的方法
Nov 15 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
使用tensorflow实现线性回归
Sep 08 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
Python流程控制 if else实现解析
Sep 02 Python
python怎么判断模块安装完成
Jun 19 Python
浅谈python数据类型及其操作
May 25 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下MYSQL limit的优化
2008/01/10 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python第三方库的安装方法总结
2016/06/06 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
大学生校园创业计划书
2014/02/08 职场文书
上班看电影检讨书
2014/02/12 职场文书
建筑管理专业求职信
2014/07/28 职场文书
2014年作风建设心得体会
2014/10/22 职场文书