python中mongodb包操作数据库


Posted in Python onApril 19, 2022

一、安装

pip install pymongo

二、连接数据库

import pymongo

# 方式一
client = pymongo.MongoClient('mongodb://localhost:27017')
# 方式二
client = pymongo.MongoClient('localhost',27017)
# 方式三,有密码认证
client = pymongo.MongoClient('localhost', 27017, username='xxx', password='xxx')

三、创建数据库

import pymongo

# 连接
client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test # 或者 db = client['test']
print(db)

四、所有数据库

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
dbs = client.list_database_names()

五、创建集合

  • 也就是数据库中的表
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user # 或者 collections = db['user']
# 删除表
collections.drop()

六、插入数据

  • insert_one:插入一条数据
  • insert_many:插入多条数据
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 创建文档数据
user1 = {
'name': 'autofelix',
'age': '25',
'height': '172',
'weight': '60'
}

user2 = {
'name': '飞兔小哥',
'age': '28',
'height': '182',
'weight': '70'
}

# 插入一条文档集合
result = collections.insert_one(user1)
print(result)
print(result.inserted_id)

# 插入多条文档集合
result = collections.insert_many([user1, user2])
print(result)
print(result.inserted_ids)

七、查询数据

  • find:查询多条数据
  • find_one:查询一条数据
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 查询所有
collections.find()
# 查询最近一条
collections.find_one()
# 根据条件查询
collections.find_one({'age':25})

八、高级查询

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 跳过第一条查到的数据
collections.find({'age':{'$gt':10}},['height','age']).skip(1)
# limit限制查询条数
collections.find({'age':{'$gt':10}},['height','age']).limit(1)
# 多条件查询
collections.find_one({'height':{'$gt':150},'age':{'$lt':26,'$gt':10}})
# in查询,查询年龄在25,26,32的数据
collections.find({'age':{'$in':[25, 26, 32]}})
# or查询,查询年龄小于等于23或者大于等于29的数据
collections.find({'$or':[{'age':{'$lte':23}}, {'age':{'$gte':29}}]})
# exists查询
collections.find({'age':{'$exists':True}})
# 正则查询
collections.find({'name':{'$regex':r'.*auto.*'}})

九、count统计

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 统计集合中总共有多少条数据
collections.find().count()
# 统计集合中年龄大于10岁的共有多少条数据
collections.find({'age':{'$gt':10}}).count()

十、修改数据

  • update_one:修改一条数据
  • update_many:修改多条数据
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 修改一条数据
collections.update_one({'name': 'autofelix'}, {'$set': {'name': '大神'}})
# 修改多条数据
collections.update_many({'name': 'autofelix'}, {'$set': {'name': '大神'}})

十一、删除数据

  • delete_one:删除一条数据
  • delete_many:删除多条数据
import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 删除一条数据
collections.delete_one({'name': 'autofelix'})
# 删除多条数据
collections.delete_many({'name': 'autofelix'})
# 删除所有数据
collections.delete_many({})

十二、数据排序

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017')
# 创建test数据库
db = client.test
# 创建表
collections = db.user

# 对字段 age 按升序排序
collections.find().sort('age')
# 对字段 age 按降序排序
collections.find().sort('age', -1)
# 多字段排序
collections.find().sort((('age',pymongo.ASCENDING),('height',pymongo.ASCENDING)))

到此这篇关于python 包操作 mongodb 数据库详情的文章就介绍到这了!

Python 相关文章推荐
python字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
详解Python中find()方法的使用
May 18 Python
深入解析Python中函数的参数与作用域
Mar 20 Python
Python实现包含min函数的栈
Apr 29 Python
视觉直观感受若干常用排序算法
Apr 13 Python
django输出html内容的实例
May 27 Python
python opencv判断图像是否为空的实例
Jan 26 Python
Python常见数据类型转换操作示例
May 08 Python
Python创建或生成列表的操作方法
Jun 19 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
浅谈Python基础之列表那些事儿
May 11 Python
Elasticsearch 聚合查询和排序
Apr 19 #Python
Elasticsearch 基本查询和组合查询
Apr 19 #Python
Elasticsearch 批量操作
Apr 19 #Python
Elasticsearch 数据类型及管理
Apr 19 #Python
Elasticsearch 索引操作和增删改查
Apr 19 #Python
python中redis包操作数据库的教程
Apr 19 #Python
python中pymysql包操作数据库方法
Apr 19 #Python
You might like
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
jQuery使用手册之一
2007/03/24 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
2016/05/19 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
详解js的六大数据类型
2016/12/27 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
python 测试实现方法
2008/12/24 Python
详解python3百度指数抓取实例
2016/12/12 Python
python字典快速保存于读取的方法
2018/03/23 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python中的self用法详解
2019/08/06 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
学校对教师的评语
2014/04/28 职场文书
工作犯错保证书
2015/05/11 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书