[TOC]
### mongoose 關聯查詢
* [ ] 一對多
比如訂單表,一個訂單對應多個商品,訂單和商品屬于一對多
~~~
async getOrder() {
return await this.ctx.model.Order.aggregate([
{
$lookup: {
from: 'order_item',
localField: 'order_id',
foreignField: 'order_id',
as: 'items'
}
}
])
}
~~~
>[info] $lookup 主表關聯
> from 關聯子表
> localField 主表id ( 與子表關聯的字段 )
> foreignField 關聯外鍵 (子表和主表關聯的字段)
> as 關聯字段
~~~
[
{
"_id": "5d209e01e9d8ac37a0976bfd",
"order_id": "1",
"uid": "10",
"trade": "111",
"all_price": "100",
"all_num": "2",
"status": "0",
"items": [
{
"_id": "5d209e33e9d8ac37a0976bfe",
"order_id": "1",
"title": "鼠標",
"price": "60",
"num": "1"
},
{
"_id": "5d209e4fe9d8ac37a0976bff",
"order_id": "1",
"title": "鍵盤",
"price": "90",
"num": "16"
},
{
"_id": "5d209e63e9d8ac37a0976c00",
"order_id": "1",
"title": "液晶屏幕",
"price": "160",
"num": "90"
}
]
}
]
~~~
- 序言
- ES6模塊化
- node基礎
- FS模塊
- 常用變量
- crypto加密
- 基礎
- 安裝
- 中間件
- 架構
- 結構分層
- 配置
- 路由
- 安裝路由
- 自動加載
- 獲取參數
- 路由前綴
- 路由中間件
- 控制器
- 請求
- 請求信息
- 數據庫
- mongoDB
- mongoDB原生語句
- mongoDB數據庫角色
- mongoose連接數據庫
- 自動記錄時間戳
- 模型
- mongoose模型
- 定義
- 模型初始化
- 查詢
- 新增
- 更新
- 刪除
- 隱藏字段
- 模式
- 關聯查詢
- 復雜模型
- 仿知乎個人資料建模
- 關注與粉絲
- 視圖
- 模板
- edge
- 日志
- 錯誤和調試
- 調試當前文件
- nodemon調試
- 異常處理
- Koa2錯誤處理
- 驗證
- Koa驗證器
- async-validator
- installation
- 安全
- 數據加密
- 雜項
- jwt
- koa-jwt
- env環境變量配置
- 上傳
- 分頁和模糊搜索
- 擴展
- nodemon
- bodyparser
- koaJsonError
- cross-env
- uuid生成唯一ID
- pope字符串模板引擎
- 命令行
- 部署
- 附錄
- RESTfulApi
- Http動詞
- 狀態碼
- 調用頻率限制
- 按需查詢字段
- restful分頁