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的pandas框架操作Excel文件中的数据教程
Mar 31 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
Apr 25 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
详细分析python3的reduce函数
Dec 05 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
python字符串和常用数据结构知识总结
May 21 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python中xlutils库用法浅析
Dec 29 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
django+mysql的使用示例
2018/11/23 Python
python字符串循环左移
2019/03/08 Python
基于python实现高速视频传输程序
2019/05/05 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
监察建议书范文
2014/03/12 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
党员发展大会主持词
2015/07/03 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
浅谈Python魔法方法
2021/06/28 Java/Android
Nginx实现会话保持的两种方式
2022/03/18 Servers