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 19 Python
Python对象类型及其运算方法(详解)
Jul 05 Python
使用Python实现简单的服务器功能
Aug 25 Python
解读python logging模块的使用方法
Apr 17 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Python中的函数作用域
May 07 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
python使用response.read()接收json数据的实例
Dec 19 Python
Pytorch反向求导更新网络参数的方法
Aug 17 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 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
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python实现简单的购物程序代码实例
2020/03/03 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
京东国际站:JOYBUY
2017/11/23 全球购物
班风口号
2014/06/18 职场文书
审美与表现自我评价
2015/03/09 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android