首页 > 编程笔记 > MySQL笔记 阅读:3

Python操作MongoDB过程详解(附带实例)

除了通过启动 mongo 进程来进入 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言访问数据库的方法。

MongoDB 官方网站提供了 Python 语言的驱动包,我们可以利用驱动包使用多种编程方法来连接并操作 MongoDB 数据库。

Python操作MongoDB

下面介绍通过 Python 操作 MongoDB 的方法。

1、导入Python相关依赖

通过 Python 3.x 访问 MongoDB,需要借助开源驱动库 PyMongo(由 MongoDB 官方提供)。PyMongo 可以直接连接 MongoDB,然后对数据库进行操作。

安装 PyMongo 驱动可使用 pip 方式,具体如下:
pip install pymongo

2、通过Python访问MongoDB编程实现

1) 建立连接

Python 连接 MongoDB 的方法比较简单,并且同时支持自动的故障修复,即连接出现故障时会自动重新连接。要在 Python 脚本中连接 MongoDB,首先要导入需要的 PyMongo 库,代码如下:
from pymongo import MongoClient

然后,使用 MongoClient 对象创建与数据库服务器的连接,代码如下:
Client = MongoClient(host = '10.90.9.101', port = 27017)

我们可以使用上述代码,通过指定 host 和 port 参数的值来连接到特定集群中的路由服务器,也可通过以下代码连接具体的 mongodb 服务器或副本集:
Client = MongoClient(host = '10.90.9.102', port = 27018)
Client = MongoClient(host = '10.90.9.101:27018, 10.90.9.102:27018, 10.90.9.103:27018')

创建 MongoClient 实例后,我们就可以访问服务器中的任何数据。如果要访问一个数据库,那么可以将它当作属性进行访问,代码如下:
db = client.myDB

我们也可以使用函数方式来访问数据库,代码如下。如果不存在数据库,则系统会自动创建数据库:
db = conn.get_database('myDB')

2) 集合操作

① 插入文档。在数据库中存储数据时,需要首先指定使用的集合,然后使用集合的 insert_one() 方法插入单个文档。以下代码展示了插入单个文档的操作:
coll = db.get_collection('myCollection')
post_data = {
    '_id': '10',
    'item': 'book',
    'qty': 18}
result = coll.insert_one(post_data)

我们还可以使用 insert_many() 方法将多个文档添加到数据库中。此方法的参数可以是列表,具体如下:
post_1 = {
    '_id': '11',
    'item': 'book1',
    'qty': 18
}
post_2 = {
    '_id': '12',
    'item': 'book1',
    'qty': 18
}
post_3 = {
    '_id': '13',
    'item': 'book1',
    'qty': 18
}
new_result = coll.insert_many([post_1, post_2, post_3])

② 检索文档。我们可以使用 find_one() 方法来检索文档,例如使用以下语句找到 item 键为 book 的记录:
find_post = coll.find_one({'item': 'book'})

如果需要查询多条记录,则可以使用 find() 方法,代码如下:
find_posts = coll.find({'item': 'book1'})
# 遍历元素
for post in find_posts:
    print(post)

③ 更新数据。我们可以使用 update_one() 来更新单条数据,或使用 update_many() 方法来更新多条数据,并指定更新的条件和更新后的数据。以下代码展示了单条数据的更新:
condition = {'item': 'book1'}
qty = {'$set': {'qty': 22}}
result = coll.update_one(condition, qty)

④ 删除数据。删除操作比较简单,直接调用 delete_one()和 delete_many()方法指定删除条件即可,符合条件的所有数据均会被删除,代码如下:
result = coll.delete_one({'item': 'book'})
result = collection.delete_many({'item': book1})

3、MongoDB可视化工具Robomongo

Robomongo 是一个界面友好且免费的 MongoDB 可视化工具。读者可在 Robomongo 官网下载它的软件安装包。

Robomongo 后来被收购了,改名为 Robo 3T,收购前后的两者并没有太大差异。

Robomongo 的安装十分简单,安装好的界面如下图所示:


图 1 安装好后的Robomongo界面

在 MongoDB Connections 窗口上单击鼠标右键,添加 MongoDB 数据库,这时出现 Robomongo 连接 MongoDB 的界面,如下图所示。


图 2 Robomongo连接MongoDB

连接成功后,MongoDB 中所有数据库以及集合均显示在 Robomongo 界面左侧的导航栏,如下图所示。


图 3 MongoDB数据库在Robomongo界面中的显示

图 3 是 Robomango 提供的可视化界面,界面左侧显示存在的集合,中上方的输入框可以输入 MongoDB 脚本。Robomango 可以帮助初学者理解 MongoDB 数据库的概念。

相关文章