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的dict,set,list,tuple应用详解
Jul 24 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
django定期执行任务(实例讲解)
Nov 03 Python
python数据封装json格式数据
Mar 04 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
pandas抽取行列数据的几种方法
Dec 13 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
python自动化调用百度api解决验证码
Apr 13 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
做一个有下拉功能的留言版
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
javascript 验证日期的函数
2010/03/18 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python中requests库session对象的妙用详解
2017/10/30 Python
python实现TF-IDF算法解析
2018/01/02 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
Android面试题附答案
2014/12/08 面试题
体育教育专业毕业生自荐信
2013/11/15 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
主题团日活动总结
2014/06/25 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
遗愿清单观后感
2015/06/09 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python