通過Aggregate $lookup操作 進(jìn)行MongoDB的聯(lián)表查詢

Aggregate的 $lookup$match ,可用于MangoDB的聯(lián)表

直接上代碼

兩個表介紹

  1. services表
    number: 服務(wù)號碼
    flow: 流程名稱
  2. flows表
    name: 流程名稱
    config: 流程配置

services表 和 flows 表,通過flow和name關(guān)聯(lián)。

聯(lián)表查詢

想實現(xiàn)查詢services表時,關(guān)聯(lián)查詢出引用的flow的詳細(xì)配置,方便前臺展示
用的aggrgete的Pipeline參數(shù)如下

[
  {
    '$lookup': {
      'from': 'flows', 
      'localField': 'flow', 
      'foreignField': 'name', 
      'as': 'flow_detail'
    }
  }
]

帶上過濾

想實現(xiàn)查詢services表的指定service,關(guān)聯(lián)查詢出引用的flow的詳細(xì)配置,方便前臺展示
用的aggrgete的Pipeline參數(shù)如下

[
   {
    '$lookup': {
      'from': 'flows', 
      'localField': 'flow', 
      'foreignField': 'name', 
      'as': 'flow_content'
    }
  }, {
    '$match': {
      'number': '6666'
    }
  }
]

基于egg-mongo-native編碼

最后基于上述pipeline參數(shù)實現(xiàn)編碼如下

let args = {
  pipeline: [
    {
      '$lookup': {
        'from': 'flows', 
        'localField': 'flow', 
        'foreignField': 'name', 
        'as': 'flow_content'
      }
    }, {
      '$match': {
        'number': '6666'
      }
    }
  ]
}
const result = await this.app.mongo.get('database').aggregate('services', args)
console.log(result)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,537評論 6 13
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵勝奧閱讀 5,203評論 0 1
  • 第四版的第八章內(nèi)容與第三版基本一致。 本章內(nèi)容: 創(chuàng)建會話式web應(yīng)用程序 定義流程狀態(tài)和行為 保護(hù)web流程 互...
    hoxis閱讀 7,409評論 2 20
  • 夜微涼 迎著窗 月兒彎彎微風(fēng)輕揚 如鉤的新月勾起無限悵惘 輕輕的微風(fēng)吹皺心頭的蕩漾 時光的那頭 誰在抬頭眺望 滿天...
    須臾D閱讀 195評論 0 0
  • 這是一個平凡的故事,因為故事的主角叫夢凡。故事發(fā)生于南方一個小鄉(xiāng)村—唐村,一個很普通的名字,這里四面環(huán)山,家家以務(wù)...
    籬熵閱讀 379評論 0 0

友情鏈接更多精彩內(nèi)容