mongoose 使用aggregate 查询

mongoose 通过 id 查询

var adminResult = await ctx.model.Admin.find({"_id":id});

mongoose 使用聚合查询 // 得到的是表中所有数据

var result = await this.ctx.model.Admin.aggregate([{
    $lookup: {
        from: 'role',           // 关联角色表
        localField: 'role_id',  // 本表 id
        foreignField: '_id',    // 被关联表 id
        as: 'role'
    }
}]);

问题来了, 怎么把它们结合起来, 即需要聚合的结果, 又想通过id 获得某一行数据

阅读 4.6k
1 个回答
var result = await this.ctx.model.Admin.aggregate([{
    $match: {_id: id}
},{
    $lookup: {
        from: 'role',           // 关联角色表
        localField: 'role_id',  // 本表 id
        foreignField: '_id',    // 被关联表 id
        as: 'role'
    }
}]);
推荐问题