首先肯定是使用Mongo的Aggregate方法
collectModel.aggregate()
因为前面最基础的大家肯定都会,现在就试着先从表A查询某些数据,再把某些数据从表B查询填充。
match可以看做是find时候的查询条件,可以先从表A查询到数据
{
$match : { _id:"123456"}
}
{$lookup:{ from: "aaa", localField: "Id", foreignField: "_id", as: "Info" }},
就是从表A查询Id字段与表aaa的_id字段匹配,查询的结果集是Info
{
$unwind:"$Info"
}
必须加$符号以表示这个是变量
4. $project
就是SQL里面的select命令
{
$project:{filename:"$filename"}
}
这样结果就只有filename了,要什么加什么。
聚合查询
{$group:{_id:"$filename",detail:{$addToSet:"$$ROOT",}}},
根据filename分组 其中ROOT是指把所有东西都放到detail里面
5.$limit
{$limit: Number(cond.limit)},
和正常的limit用法是一样的。
最后这些东西放在开头的数组里面执行即可。