在 MongoDB 中,可以使用 aggregate
方法來實現子查詢。aggregate
方法接受一個管道參數,可以使用 $lookup
操作符來執行子查詢。
以下是一個示例:假設有兩個集合 orders
和 products
,orders
集合包含訂單信息,products
集合包含產品信息。現在想要查詢所有訂單,并將訂單中的產品信息嵌入到訂單文檔中。
首先,我們將創建一個名為 orders
的集合,并插入一些示例數據:
db.orders.insertMany([
{ _id: 1, product_id: 101, quantity: 2 },
{ _id: 2, product_id: 102, quantity: 1 },
{ _id: 3, product_id: 103, quantity: 3 },
]);
然后,創建一個名為 products
的集合,并插入一些示例數據:
db.products.insertMany([
{ _id: 101, name: 'Product 1' },
{ _id: 102, name: 'Product 2' },
{ _id: 103, name: 'Product 3' },
]);
現在,可以使用 aggregate
方法來實現子查詢,并將產品信息嵌入到訂單文檔中:
db.orders.aggregate([
{
$lookup: {
from: 'products',
localField: 'product_id',
foreignField: '_id',
as: 'product',
},
},
]);
執行上述代碼后,將會得到一個包含所有訂單及其產品信息的結果集。
以上就是在 MongoDB 中實現子查詢的方法。