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计算牛顿迭代多项式实例分析
May 07 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
Python assert语句的简单使用示例
Jul 28 Python
Python实现微信机器人的方法
Sep 06 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Python scrapy爬取小说代码案例详解
Jul 09 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
php之XML转数组函数的详解
2013/06/07 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
javascript ajax 仿百度分页函数
2013/10/29 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
使用python 获取进程pid号的方法
2014/03/10 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
python实现倒计时小工具
2019/07/29 Python
python 回溯法模板详解
2020/02/26 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
详解如何解决使用JSON.stringify时遇到的循环引用问题
2021/03/23 Javascript
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
幼儿园家长寄语
2014/04/02 职场文书
暑期实践个人总结
2015/03/06 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
政协工作总结2015
2015/05/20 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js
python开发人人对战的五子棋小游戏
2022/05/02 Python