我收集了一些设备。每个设备都适用于某个组(具有组ID)。在设备集合中,我存储了组的ID。当我想从某个组中获取设备时,可以在查询参数中添加组ID。如何按组ID汇总设备集合?
// I can do something like this,
exports.getControllers = async (req, res) => {
const { group } = req.query;
const findGroup = await Groups.findById(group);
if (!findGroup) {
return res.status(400).json({ error: "Такой группы не существует" });
}
const {controllers} = findGroup;
const arrayOfControllers = [];
for (let i = 0; i < controllers.length; i++) {
const controller = await Controllers.findById(controllers[i]);
arrayOfControllers.push(controller);
}
return res.status(200).json({ arrayOfControllers })
}
// but I want something like this
Controllers.aggregate([
{
$match: {group},
}
], (err, result) => {
if (err) {
console.log(err);
} else {
console.log(result)
}
})
在聚合结果中,我有一个空数组