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