MongoDB联表查询
原文:https://www.cnblogs.com/-abm/p/10390543.html
表A:
|
1
2
3
4
5
6
|
id name---------------------------1 Tom2 Roger3 Mars4 Brent |
表B:
|
1
2
3
4
5
6
|
id result-------------------------1 902 603 884 75 |
需求
将表A中的name和表B中的result关联查询。
思路
通过关联条件id关联name和result
mysql 用left join,mongo用$lookup
语句
db."A表".aggregate([
{
"$lookup": { //通过loolup关联两个表,相当于left join
"from": "B表", //同一个数据库下需要被关联的集合名
"localField": "A_id", //A表需要关联的键
"foreignField": "B_id", //B表需要关联的键
"as": "B_list" //B表的别名,下面输出B表字段时用到
}
},
{
"$match": {
"A_id": '1' //查询条件,相当于where
}
},
{
"$project": { //决定要显示的字段,相当于select的作用
"name": 1,
"B_result": "$B_list.result"
}
}])
结果
|
1
2
3
4
|
name B_result---------------------------------Tom 90 |
注意
1 只能两个表联合查询
2 不能跨库联合

浙公网安备 33010602011771号