Python 操作 MongoDB 数据库(下)

本文字数: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。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180929A0AV8100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券