使用$ lockup对汇总值执行$ match

时间:2019-12-19 09:59:00

标签: javascript mongodb graphql aggregate

我正在对我的模型执行聚合,因此我需要根据聚合值之一进行匹配。我正在努力投射我需要的唯一值(我的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}
                }
            }

0 个答案:

没有答案