本文字数:3781 字
阅读本文大概需要:10 分钟
写在之前
在
Python 操作 MongoDB 数据库(上)
这篇文章中,我们学洗了MongoDB 数据库的安装运行和使用,以及用 Python 连接 MongoDB。我们建立的 books 引用的是一个 MongoDB 的集合对象,既然是对象,那么就有一些方法供我们使用,今天我们就来学习一下。
编辑
还是用我们的老朋友 dir() ,你在自己的交互模式下运行的结果会发现有很多的方法,这么多方法在这里我不会一一介绍,只是按照「增删改查」的常用功能介绍几种,大家可以用 help() 去查看每一种方法的使用说明。
这里提醒大家注意的是,MongoDB 的 shell 中的命令与 pymongo 中的方法有时候会稍有差别,这个务必小心。
目前在集合 books 中只有一个文档,如果还想再增加,就需要进行「增删改查」的常规操作。
1.增加
上面成功的向集合中增加一个文档。
这是查看当前集合有多少个文档的方式,返回值为 2,则说明集合中有两个文档,但还是要看看内容的:
这个命令就不行,因为它只返回第一条,必须要:
在 books 引用的印象中有 find() 方法,它返回的是一个可迭代对象,包含着集合中所有的文档。
由于文档是「键/值对」,不一定每一个文档的结构都要一样。比如可以在集合中插入像下面这样的文档:
如果有多个文档,想同时插入到集合中,可以像下面这样做:
这样就完成了所谓的批量插入,查看一下文档个数:
这里需要提醒一下的是,批量插入的文档大小是有限制的,具体是多少没有碰到过,一般情况下或许达不到上限,如果遇到极端情况,那么就要多多注意啦。
2.查询
如果要查询的话,除了通过循环以外,能不能按照某个条件查询呢?比如查找 name = bash 的文档:
对于查询结果,还可以进行排序:
这里按照 title 的升序排列的,注意 sort() 的第二个参数,意思是升序排列,如果按照降序的话,就需要将参数修改为 pymongo.DESCEDING。
如果你看到这里,请务必注意 MongoDB 中的每个文档,本质上都是 键/值 对的类字典结构,这种结构一经 Python 读出来,就可以用字典中的各种方法来操作。
你是否还能记起我们之前讲过的 Json,这个也是类字典格式。但是用 Python 从 MongoDB 中读到的类字典数据,却无法直接用 json.dumps() 方法操作。
3.更新
对于已有的数据库来说,更新数据是常用的操作。比如更新 name 为 lisp 的文档:
在更新的时候,用了一个 $set 修改器,它可以用来指定键值,如果键不存在则创建。关于更多的修改器,如下所示(截图来源于网上):
4.删除
删除可以用 remove() 方法:
这个是将整个文档全部删除。当然了,也可以根据 MongoDB 的语法规则写个条件,按照条件删除。
5.索引
索引的目的是为了让查询的速度更快,但是在实际应用中,是否建立索引要视情况而定,因为建立索引是有代价的。
写在之后
这两篇 Python 操作 MongoDB 数据库的文章仅仅是对 pymongo 模块做了一个非常简单的介绍,在实际的使用过程中,上面的知识其实是很有限的,所以还是需要大家根据具体应用场景再结合 MongoDB 的相关知识去尝试新的语句。
如果你觉得本篇文章对你有帮助的话,欢迎点赞、转发、关注支持一下。
The end。
领取专属 10元无门槛券
私享最新 技术干货