📜  如何使用Python访问 MongoDB 中的集合?(1)

📅  最后修改于: 2023-12-03 15:24:00.909000             🧑  作者: Mango

如何使用Python访问 MongoDB 中的集合?

MongoDB 是一种流行的文档数据库,用于存储非结构化数据。Python 提供了官方的 MongoDB 驱动程序 PyMongo,可以轻松地与 MongoDB 服务器交互。

在本文中,我们将介绍如何使用 Python 和 PyMongo 访问 MongoDB 中的集合。

安装 PyMongo

在开始访问 MongoDB 之前,请确保已安装 PyMongo。您可以通过运行以下命令安装它:

pip install pymongo
连接到 MongoDB

首先,让我们创建一个连接到 MongoDB 的客户端。您需要提供 MongoDB 服务器的主机名和端口号以及您的凭据(如果您有)。

import pymongo

# 连接到 MongoDB 服务器
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 选择数据库
db = client["mydatabase"]

在这里,我们连接到本地 MongoDB 服务器的默认端口 27017,并选择名为 mydatabase 的数据库。

访问集合

现在,我们可以访问 mydatabase 数据库中的任何集合。我们可以从数据库对象中获取该集合对象。

# 选择集合
collection = db["customers"]

在这里,我们选择名为 customers 的集合。

插入数据

我们可以使用 insert_one() 方法将数据插入 MongoDB 集合中。

# 插入单个文档
data = { "name": "Alice", "age": 25 }
result = collection.insert_one(data)

print("Inserted document with _id:", result.inserted_id)

在这里,我们定义了一个数据对象 data,该对象包含一个名为 name 和一个名为 age 的键值对。我们将数据插入到 customers 集合中,并使用 inserted_id 属性访问新添加文档的 ID。

查询数据

使用 find() 方法可查询集合中的所有文档,使用查询条件可筛选结果。

# 查询集合中的所有文档
for doc in collection.find():
    print(doc)

# 根据查询条件查询文档
query = { "name": "Alice" }
for doc in collection.find(query):
    print(doc)
更新数据

使用 update_one()update_many() 方法可更新集合中的文档。

# 更新单个文档
query = { "name": "Alice" }
new_value = { "$set": { "age": 26 } }
result = collection.update_one(query, new_value)

print("Number of documents modified:", result.modified_count)

# 更新多个文档
query = { "name": { "$regex": "^A" } }
new_value = { "$set": { "age": 30 } }
result = collection.update_many(query, new_value)

print("Number of documents modified:", result.modified_count)

在这里,我们使用 update_one() 方法将名为 Alice 的文档的 age 键更新为 26。使用 $set 操作符指定要更新的键及其新值。

使用 update_many() 方法可更新满足查询条件的所有文档。

删除数据

使用 delete_one()delete_many() 方法可从集合中删除文档。

# 删除单个文档
query = { "name": "Alice" }
result = collection.delete_one(query)

print("Number of documents deleted:", result.deleted_count)

# 删除多个文档
query = { "name": { "$regex": "^A" } }
result = collection.delete_many(query)

print("Number of documents deleted:", result.deleted_count)

在这里,我们使用 delete_one() 方法删除名为 Alice 的文档。使用 delete_many() 方法将满足查询条件的所有文档删除。

以上就是使用 Python 访问 MongoDB 中的集合的基本操作。要深入了解 PyMongo,请参阅官方文档。