【发布时间】:2020-06-28 20:43:08
【问题描述】:
我有以下代码:
const profiles = await Profile.aggregate([
{
$lookup: {
from: "users",
localField: "user",
foreignField: "_id",
as: "user",
},
},
{
$unwind: "$user",
},
{
$match: {
"user.name": {
$regex: q.trim(),
$options: "i",
},
},
},
{
$skip: req.params.page ? (req.params.page - 1) * 10 : 0,
},
{
$limit: 11,
},
{
$group: {
_id: "$_id",
skills:{skills}
user: { name: "$name" },
user: { avatar: "$avatar" },
},
},
]);
我只想返回特定字段,例如技能 _id 和 user.name 和 user.avatar,但这不起作用。我很确定问题出在 $group 中。我只想接收这些字段
[
{
_id: 5ef78d005d23020ca847aa76,
skills: [ 'asd' ],
user: {
_id: 5ef78c7c5d23020ca847aa75,
name: 'Simeon Lazarov',
avatar: 'uploads\\1593286096227 - background.jpg',
}
}
]
【问题讨论】:
-
请用示例数据更新问题
-
我编辑了我的问题以向您展示我想要得到的回报,但是通过我的查询,我得到了有关个人资料的所有信息
-
你试过使用$project吗? docs.mongodb.com/manual/reference/operator/aggregation/project
-
是的,但我对聚合真的很陌生,我想我只是尝试错了
标签: mongodb aggregation-framework