前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python应用MongoDB数据库的一些总结

Python应用MongoDB数据库的一些总结

作者头像
luanhz
发布2020-03-31 17:04:51
6470
发布2020-03-31 17:04:51
举报
文章被收录于专栏:小数志小数志

1.何为数据库?

数据库,顾名思义,就是数据存储的一个仓库。个人理解,与普通的文件不同,数据库因为是专门用于存储特定格式的数据,所以术业有专攻,它在处理数据相关的事务时更为专业和高效。当然,有的文件也可一定程度上接近数据库的部分功能,比如Excel,甚至可以说Excel这种表格形式就是关系型数据库的原型。这里,数据库存储的特定格式一般可分为两类:一个是相对苛刻的类型,即关系型数据库,如SQL,因为其严格按照表格的形式存储数据,且各列对应特定的数据类型(如数值、字符串等),所以数据存储限制更多;另一个是文档型存储格式,也叫非关系型数据库(NoSQL,Not only SQL),如MongoDB(也有说MongoDB是介于关系型和非关系型之间的一种类型数据库),里面实际上用到的就是类似JSON(官方说法叫BSON,即二进制的JSON)的存储格式,对于数据内容和格式要求更为宽松。二者各有其独特用武之地,只有合适与不合适,不存在孰优孰劣。

2.MongoDB数据库

MongoDB,实际上取自humongous一词(跟芒果毫无关联),意味巨大的数据库。在数据库系统排名中,MongoDB长期排于第5左右的位置,前4名均为关系型数据库。

在关系型数据库中,数据库的三级结构是数据库(Database)——表(Table)——行(Row),类似地,在MongoDB中,这三级结构分别为数据库(Database)——集合(Collection)——文档(Document),所以在部分操作和理解中可以类比进行设置操作语句。

3.相关可视化工具

数据库若不能“可视”,那么就好像一个黑箱子一样,是非常不利于使用者直观的对库存中的数据去查看和管理的,所以数据库可视化工具应运而生。相关的工具非常多,也都有各自特色,目前主要使用的是NoSQLBooster。NoSQLBooster,前身是mongobooster,是比较好用的一款MongoDB可视化工具,分为免费版和收费版,收费版功能会更齐全,声称做“The Smartest IDE for MongoDB”。几个比较好用的功能:支持数据Tree、Json和Table三种格式显示,支持Query方式查询数据(查询语句生成器),非常适用于数据库新手操作使用,同时还支持转换生成其他语言代码,如转换成Python就会非常有意义。

4.常用的操作方法

数据库最主要的操作方法有四种,即增删改查,掌握这四招即可以完成数据库的绝大部分工作。

首先讲在Python中如何实现与MongoDB数据库的连接

代码语言:javascript
复制
connection = pymongo.MongoClient('Localhost', 27017)#获取MongoDB的连接
db = connection['wwxd']#或connection.wwxd,将当前操作数据库指定至wwxd数据库,记做db
collection = db['comments']# 或db.comments,获取wwxd数据库下的comments集合,记做collection

上面3条语句分别实现了与MongoDB连接——指定数据库——指定集合,而后的操作就是针对当前集合进行。

4.1增。主要是应用insert方法。在指定集合后,在当前集合中增加一条或多条文档的语句为

代码语言:javascript
复制
collection.insert_one(document)#document为一条字典格式数据
collection.insert_many(documents)#documents为多条字典格式数据

4.2删。主要是应用remove方法实现,示例如下:

代码语言:javascript
复制
collection.remove({查询条件})#删除所有满足查询条件的数据

如果只想删除满足查询条件的第一条数据,则可增加 justOne 为 1参数,如

代码语言:javascript
复制
collection.remove({查询条件},1)#删除满足查询条件的第一条数据

4.3改。主要是应用update方法,示例如下:

代码语言:javascript
复制
collection.update({查询条件},{$set:{待修改内容}})#对满足查询条件的文档完成待修改内容更新

与删除功能不同,当集合中存在多条文档满足查询条件,则上述语句默认只会修改第一条发现的文档。如果想要修改所有满足要求的文档,则需要增加 multi 参数为 true,如

代码语言:javascript
复制
collection.update({查询条件},{$set:{待修改内容}},{multi:true})#修改多条

另外,也可应用save方法实现目标文档的更新,即借助MongoDB唯一内置_id来实现文档修改。

4.4查。查才是数据库的灵魂所在,也是体现数据库维护管理水平差距的地方。包括在删除和修改两类操作中,实际上也是用到了查询操作。主要是应用find方法,查询条件可以是多种多样,对于数值型可以是大于、小于、等于、位于区间等等,对于字符串则可以是等于、包含、正则匹配等等。

另外,数据库的操作还包括很多,如聚合、排序等,这些都是要靠在实际应用中慢慢摸索和积累掌握的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小数志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档