Python操作mongodb的9个步骤


Posted in Python onJune 04, 2018

一 导入 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中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
详解Python IO编程
Jul 24 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
pandas数值排序的实现实例
Jul 25 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
Sep 23 Python
Python中property函数用法实例分析
Jun 04 #Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 #Python
python最长回文串算法
Jun 04 #Python
python中字符串的操作方法大全
Jun 03 #Python
Python Logging 日志记录入门学习
Jun 02 #Python
python实现寻找最长回文子序列的方法
Jun 02 #Python
python实现对求解最长回文子串的动态规划算法
Jun 02 #Python
You might like
简单谈谈favicon
2015/06/10 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python基于dom操作xml数据的方法示例
2018/05/12 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
python实现五子棋小游戏
2020/03/25 Python
90后毕业生的求职信范文
2013/09/21 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
教职工代表大会主持词
2014/04/01 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
合作经营协议书范本
2014/09/16 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
保险内勤岗位职责
2015/04/13 职场文书
员工工作心得体会
2019/05/07 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
Python保存并浏览用户的历史记录
2022/04/29 Python