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的lambda匿名函数的简单介绍
Apr 25 Python
Python的垃圾回收机制深入分析
Jul 16 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
Python实现方便使用的级联进度信息实例
May 05 Python
让Python代码更快运行的5种方法
Jun 21 Python
Python 3中的yield from语法详解
Jan 18 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
Python定时器实例代码
Nov 01 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
自己使用总结Python程序代码片段
2015/06/02 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python config文件的读写操作示例
2019/09/27 Python
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
出纳试用期自我评价
2015/03/10 职场文书
中小企业员工手册范本
2015/05/14 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
Mysql Online DDL的使用详解
2021/05/20 MySQL
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
Python first-order-model实现让照片动起来
2022/06/25 Python
Docker安装MySql8并远程访问的实现
2022/07/07 Servers