mongodb聚合查询
date
Sep 10, 2020
slug
mongodb
status
Published
tags
后端
summary
mongodb聚合查询的几种方式
type
Post
2个表关联查询
model.aggregate([
$lookup:{
from:"//关联的表名",
localField:"本表的关联字段",
foreignField:"关联表的关联字段",
as:"保存的数组名称"
}
],(err,res)=>{
...
})

- 如图,一个订单下有很多个item,order表会通过order_id字段关联order_item表
//实例
//order表关联order_item表进行查询
//返回的数据保存为items数组
OrderModel.aggregate([
$lookup:{
from:"order_item",
localField:"order_id",
foreignField:"order_id",
as:"items"
}
],(err,res)=>{
if(err){
console.log(err)
}
return res
...
})
多表关联查询
- 查询文章分类,作者,及作者信息
ArticleModel.aggregate([
{
$lookup:{
from:'articlecate',
localField:'cid',
foreignField:'_id',
as:'cate'
}
},
{
$lookup:{
from:'user',
localField:'author_id',
foreignField:'_id',
as:'userInfo'
}
}
],(err,res)=>{
console.log(JSON.stringfy(res))
})
populate实现多表关联查询
- 不方便 不用