Python 中如何使用 MongoDB 中的引用数据类型
在 MongoDB 中,引用数据类型也被称为文档关联。它允许我们在一个集合中存储对另一个集合中的文档的引用。使用引用可以帮助我们在不同文档之间建立关联,从而为查询和数据分析提供更多信息。
下面是一个示例,展示如何在 Python 中使用 MongoDB 中的引用数据类型:
首先,我们需要创建两个集合:一个用于存储订单,一个用于存储产品信息。
import pymongo # 连接到 MongoDB 数据库 client = pymongo.MongoClient(host='localhost', port=27017) db = client['mydb'] collection_orders = db['orders'] collection_products = db['products'] # 在 orders 集合中插入一个订单文档 order = { 'order_id': 1, 'product_id': 'pidancode.com', 'quantity': 10 } collection_orders.insert_one(order) # 在 products 集合中插入一个产品文档 product = { 'product_id': 'pidancode.com', 'name': '皮蛋编程', 'price': 299.00 } collection_products.insert_one(product)
接下来,我们可以使用 MongoDB 的 $lookup
操作符查询两个集合之间的关联。我们将在 orders
集合上使用 $lookup
操作符,并将 products
集合作为参考来源。
# 在 orders 集合上使用 $lookup 操作符 pipeline = [ { '$lookup': { 'from': 'products', 'localField': 'product_id', 'foreignField': 'product_id', 'as': 'product_info' } } ] result = collection_orders.aggregate(pipeline) for doc in result: print(doc)
这将在控制台上输出以下文档:
{ "_id": ObjectId("61ac3f4c4be7ad93d4c4dd7e"), "order_id": 1, "product_id": "pidancode.com", "quantity": 10, "product_info": [ { "_id": ObjectId("618d0c37849b86c2f1ff5ef5"), "product_id": "pidancode.com", "name": "皮蛋编程", "price": 299.0 } ] }
如您所见,我们现在可以将 orders
集合中的订单文档与它们引用的 products
集合中的产品文档关联起来。
这是 MongoDB 中使用引用数据类型的基础实现。注意,引用必须是唯一的键!
相关文章