mongo 聯表查詢


查詢語句

db.getCollection("A表").aggregate([
{
$lookup:{
from:"B表",
localField:"A_id",
foreignField:"B_id",
as:"B_list"
}
},
{
$match:{ A_id:{$eq:100000} }
},
{
$project:{"A_id":1,"B_list":{"B_id":1 }}
}
])

查詢結果

{
"A_id" : NumberInt(100000),
"B_list" :
{
"B_id" : NumberInt(100000)
}
}

-----------------------------------------------------

$lookup 參數說明

from 需要關聯的表名(B表)
localField A表 需要關聯的鍵
foreignField B表需要關聯的鍵
as B表的數據取個別名


$match 查詢條件 相當於where的作用

A_id:{$eq:100000} 意思是 A_id=100000


$project 決定要顯示的字段 相當於select 的作用
"A_id":1 顯示 A_id字段
"A_id":0 不顯示 A_id字段

提醒:顯示或不顯示,需要統一設置,不能交叉使用。
比如: $project:{"A_id":1,"B_list":{"B_id":0 }} 就會報錯

------------------------------------
特別注意:
1 只能兩個表聯合查詢
2 不能跨庫聯合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM