我有2个表:函数,权限
db.Function.insert(
[{
_id: 'DASHBOARD',
name: 'Dash Board',
},
{
_id: 'HOME',
name: 'HOME PAGE',
}]);
db.Permission.insert(
[{
function: 'DASHBOARD',
role: 'ADMIN',
read: true,
},
{
function: 'DASHBOARD',
role: 'MEMBER',
read: true,
},
{
function: 'HOME',
role: 'MEMBER',
read: false,
},
{
function: 'HOME',
role: 'ADMIN',
read: true,
}
]);
我如何在条件为MEMBER的情况下获得所有功能并读取为真。 我试试这个
db.function.aggregate([
{ $lookup: {
from: 'permission',
let: { functionId: '$_id' },
pipeline: [
{ $match: {
$expr: { $and: [
{ $eq: ['$function', '$$functionId'] },
{ $eq: ['$role', 'MEMBER'] },
] },
} },
{ $project: { read: 1, _id: 0 } },
],
as: 'perm',
} },
]);
我需要做什么?为了获得读取为真的函数,我想要的数据会像这样
[{
_id: 'HOME',
name: 'HOME PAGE',
}]