1. MongoDB简介
MongoDB 是一种基于分布式文件存储的 NoSQL 数据库,用 C++ 语言编写。它的数据模型是面向文档的,而不是关系型的。这意味着 MongoDB 在存储数据时,不需要固定的表结构,也不需要预先定义数据结构。这使得 MongoDB 更加灵活,可以更好地适应数据的变化。
与传统的关系型数据库相比, MongoDB 的存储结构更加灵活,能够 方便地存储任意类型的数据。另外, MongoDB 支持水平扩展, 即在多台服务器上分布数据,从而能够实现非常高的可用性和可扩展性。
2. Python与MongoDB的无缝连接
2.1 安装pymongo
要在Python中使用MongoDB,需要使用一个Python驱动程序 来连接到MongoDB: pymongo。Pymongo 是 MongoDB 官方支持的Python驱动程序。我们可以通过pip 命令进行安装。
pip install pymongo
2.2 连接MongoDB
在连接 MongoDB 之前,首先需要安装 MongoDB 数据库,并且启动MongoDB 服务。可以通过以下命令来启动MongoDB服务:
./mongod
在MongoDB 中,数据保存在数据库(database) 中。每个数据库(database) 又包含多个集合(collection)。集合(collection) 类似于关系型数据库中的表格,而文件(document) 则相当于关系型数据库中的行。
使用Pymongo 连接MongoDB 也是非常简单的,您只需要指定MongoDB 的地址和端口号即可。在下面的示例中,我们将连接到名为“test”的数据库:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["test"]
2.3 插入数据
在MongoDB 中,要想插入一条新的数据,只需要将数据以字典的形式传递给 collection 的insert_one() 方法即可:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["test"]
col = db["users"]
user = { "name": "Tom", "address": "Cali" }
col.insert_one(user)
注:此时会自动创建一个名为 “users” 的集合,并将数据插入到该集合中。
2.4 查询数据
在MongoDB 中查询数据也是非常简单的。使用find() 方法查询数据时, find() 方法返回的是一个Cursor 对象,我们可以使用 for 循环迭代这个对象来获取查询结果,也可以使用 limit() 方法指定查询结果的数量。例如,以下代码会查询整个集合中的所有文档,并输出结果:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["test"]
col = db["users"]
for x in col.find():
print(x)
注:上面的代码将返回整个 “users” 集合的内容。
2.5 删除数据
在MongoDB 中删除数据也非常简单,只需将符合条件的数据以字典的形式传递给 delete_one() 方法即可。例如:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["test"]
col = db["users"]
myquery = { "address": "Cali" }
col.delete_one(myquery)
注:上面的代码将删除所有地址为 Cali 的文档。
3. 结语
通过上面的介绍,我们了解了如何无缝连接Python与 MongoDB,并且学习了如何插入、查询和删除数据。在实际应用程序开发中, NoSQL 数据库(如 MongoDB) 可以为我们提供更大的灵活性,同时也可以在必要的情况下提供更好的可伸缩性。