我正在对我的模型执行聚合,因此我需要根据聚合值之一进行匹配。我正在努力投射我需要的唯一值(我的profile_info对象包含近50个字段)。我尝试执行以下操作,但结果未定义: PS:我正在使用库:mongoose-aggregate-paginate-v2
var aggregatedUser= user.aggregate([
{
$lookup:{
from: "profiles",
localField: "profile",
foreignField: "_id",
as: "profile_info"
}
},{
$project:{
"status":1,
"profile_info":{"age":1}
}
},{
$match: {
status: "member",
profile_info: {$gt:18}
}
}
user.aggregatePaginate(aggregatedUser, options)
.then(res=>resolve({list: res.docs}))
.catch(err=>console.log(err))
...知道在我console.log响应时,我发现profile_info是一个包含对象的选项卡。 我试图排除多余的字段,但是它可以工作,但是由于我有很多字段,所以不切实际:
var aggregatedUser= user.aggregate([
{
$lookup:{
from: "profiles",
localField: "profile",
foreignField: "_id",
as: "profile_info"
}
},{
$project:{
"profile_info":{"scolarity":0,"university":0,"school":0}
}
},{
$match: {
status: "member",
profile_info: {$gt:18}
}
}