中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

MongoDB聚合管道查詢怎樣進行連接

小樊
82
2024-10-30 15:00:24
欄目: 云計算

在MongoDB中,聚合管道查詢可以通過$lookup操作符來實現連接(join)操作。$lookup允許你將來自另一個集合的文檔與當前集合的文檔進行連接。以下是一個簡單的示例:

假設我們有兩個集合:orderscustomersorders集合包含訂單信息,customers集合包含客戶信息。我們想要查詢每個訂單及其對應的客戶信息。

orders集合:

{
  "_id": 1,
  "customer_id": 1,
  "product": "Laptop",
  "price": 1000
}

customers集合:

{
  "_id": 1,
  "name": "John Doe",
  "email": "john.doe@example.com"
}

我們可以使用以下聚合管道查詢來連接這兩個集合:

db.orders.aggregate([
  {
    $lookup: {
      from: "customers",
      localField: "customer_id",
      foreignField: "_id",
      as: "customer_info"
    }
  },
  {
    $unwind: "$customer_info"
  },
  {
    $project: {
      _id: 1,
      customer_id: 1,
      product: 1,
      price: 1,
      customer_name: "$customer_info.name",
      customer_email: "$customer_info.email"
    }
  }
])

這個查詢的工作原理如下:

  1. $lookup操作符從customers集合中查找與orders集合中的customer_id相匹配的文檔,并將結果存儲在名為customer_info的新數組字段中。
  2. $unwind操作符將customer_info數組拆分為多個文檔,每個文檔包含一個客戶信息。
  3. $project操作符重新構造輸出文檔,將客戶名稱和電子郵件字段分別重命名為customer_namecustomer_email

查詢結果:

{
  "_id": 1,
  "customer_id": 1,
  "product": "Laptop",
  "price": 1000,
  "customer_name": "John Doe",
  "customer_email": "john.doe@example.com"
}

0
肥城市| 普兰县| 洞口县| 武义县| 香格里拉县| 贺州市| 施甸县| 广州市| 当阳市| 新郑市| 调兵山市| 行唐县| 大邑县| 资兴市| 江山市| 襄垣县| 惠来县| 延边| 南漳县| 永德县| 化隆| 大悟县| 共和县| 顺昌县| 马尔康县| 台北县| 溆浦县| 石屏县| 黄陵县| 天气| 龙井市| 富宁县| 理塘县| 雷山县| 宁南县| 新郑市| 五大连池市| 平原县| 灵寿县| 崇信县| 株洲县|