📜  Python MongoDB 教程(1)

📅  最后修改于: 2023-12-03 14:46:00.514000             🧑  作者: Mango

Python MongoDB 教程

本教程将介绍如何使用 Python 访问 MongoDB 数据库。MongoDB 是一种 NoSQL 数据库,常用于存储大量非结构化数据。

准备工作

在开始之前,需要确保已经安装了 Python 和 MongoDB。可以使用 pip 安装 pymongo 库。

$ pip install pymongo
连接 MongoDB 数据库

在 Python 中使用 PyMongo 模块连接 MongoDB 数据库,示例代码如下:

import pymongo

# 创建 MongoClient 对象
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 创建数据库对象
db = client["mydatabase"]
创建集合

集合在 MongoDB 中类似于一个表,在集合中存储文档。可以使用 insert_one 或 insert_many 方法创建集合,示例代码如下:

# 创建集合对象
col = db["customers"]

# 插入一条文档
customer = {"name": "John", "address": "Highway 37"}
col.insert_one(customer)

# 插入多条文档
customers = [
    {"name": "Amy", "address": "Apple st 652"},
    {"name": "Hannah", "address": "Mountain 21"},
    {"name": "Michael", "address": "Valley 345"},
    {"name": "Sandy", "address": "Ocean blvd 2"},
    {"name": "Betty", "address": "Green Grass 1"},
    {"name": "Richard", "address": "Sky st 331"},
    {"name": "Susan", "address": "One way 98"},
    {"name": "Vicky", "address": "Yellow Garden 2"},
    {"name": "Ben", "address": "Park Lane 38"},
    {"name": "William", "address": "Central st 954"},
    {"name": "Chuck", "address": "Main Road 989"},
    {"name": "Viola", "address": "Sideway 1633"}
]
col.insert_many(customers)
查询文档

在 PyMongo 中可以使用 find_one 和 find_many 方法查询文档。find_one 方法返回集合中第一条匹配的文档,find_many 方法返回所有匹配的文档。

# 查询集合中第一条文档
x = col.find_one()
print(x)

# 查询集合中所有文档
for x in col.find():
    print(x)

# 指定返回字段
for x in col.find({}, {"_id": 0, "name": 1, "address": 1}):
    print(x)

# 指定查询条件
query = {"address": "Park Lane 38"}
result = col.find(query)
for x in result:
    print(x)
更新文档

在 PyMongo 中可以使用 update_one 或 update_many 方法更新文档。

# 更新第一条匹配的文档
query = {"address": "Valley 345"}
new_values = {"$set": {"address": "Canyon 123"}}
col.update_one(query, new_values)

# 更新所有匹配的文档
query = {"address": {"$regex": "^S"}}
new_values = {"$set": {"name": "Minnie"}}
col.update_many(query, new_values)
删除文档

在 PyMongo 中可以使用 delete_one 或 delete_many 方法删除文档。

# 删除第一条匹配的文档
query = {"address": "Yellow Garden 2"}
col.delete_one(query)

# 删除所有匹配的文档
query = {"address": {"$regex": "^S"}}
col.delete_many(query)
删除集合和数据库

在 PyMongo 中可以使用 drop 方法删除集合和数据库。

# 删除集合
col.drop()

# 删除数据库
client.drop_database("mydatabase")
总结

本教程介绍了如何使用 Python 连接 MongoDB 数据库,并对集合中的文档进行增删改查操作。希望对您有所帮助!