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命名空间详解
Aug 18 Python
在Python中使用next()方法操作文件的教程
May 24 Python
Python语言描述最大连续子序列和
Dec 05 Python
python网络爬虫学习笔记(1)
Apr 09 Python
Django 实现购物车功能的示例代码
Oct 08 Python
在python中bool函数的取值方法
Nov 01 Python
Django组件之cookie与session的使用方法
Jan 10 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
Python pip配置国内源的方法
Feb 14 Python
pycharm 激活码及使用方式的详细教程
May 12 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
python类定义的讲解
2013/11/01 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python dict的常用方法示例代码
2020/06/23 Python
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
一套带网友答案的.NET笔试题
2016/12/06 面试题
预备党员转正考核材料
2014/06/03 职场文书
企业文化标语口号
2014/06/09 职场文书
公司委托书格式
2014/08/01 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
2014年营业员工作总结
2014/11/18 职场文书
店铺转让协议书
2015/01/29 职场文书