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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
Python装饰器decorator用法实例
Nov 10 Python
Python+Opencv识别两张相似图片
Mar 23 Python
Python编写登陆接口的方法
Jul 10 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
python 错误处理 assert详解
Apr 20 Python
Django REST Swagger实现指定api参数
Jul 07 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 Python
教你用python实现一个无界面的小型图书管理系统
May 21 Python
python 爬取京东指定商品评论并进行情感分析
May 27 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
php Try Catch异常测试
2009/03/01 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
python使用邻接矩阵构造图代码示例
2017/11/10 Python
如何用python整理附件
2018/05/13 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python利用tkinter实现屏保
2019/07/30 Python
详解pandas赋值失败问题解决
2020/11/29 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
个人简历中的自我评价范例
2013/10/29 职场文书
历史学专业推荐信
2013/11/06 职场文书
活动策划邀请函
2014/02/06 职场文书
食品安全演讲稿
2014/09/01 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
优秀高中学生评语
2014/12/30 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技