mongoose MongoDB中另一个字段相同的数组中的字段组合?

qyzbxkaa  于 2023-02-04  发布在  Go
关注(0)|答案(1)|浏览(117)

我想找到相同性别的匹配项,并将它们插入到一个新的字段数组(又名名称)中,但我无法使用MongoDB或mongooese解决方案。
输入示例:

db.students.insertMany([
  { id: 1, name: "Ryan", gender: "M" },
  { id: 2, name: "Joanna", gender: "F" },
  { id: 3, name: "Andy", gender: "M" },
  { id: 4, name: "Irina", gender: "F" }
]);

预期输出:

[
   { gender: "M", names: ["Ryan","Andy"]},
   { gender: "F", names: ["Joanna","Irina"]}
]
  • 注:表中有许多记录,我事先不知道这些性别/姓名对 *

我尝试了这个查询,但没有结果。我不知道该如何编写这个查询。

db.students.aggregate([
    {
        $group:{
            names : {$push:"$name"},
            }
        },
         { "$match": { "gender": "$gender" } }  

])
8iwquhpp

8iwquhpp1#

您没有指定分组方式。请尝试以下方式:

db.students.aggregate([
  {
    $group: {
      _id: "$gender",
      names: { $push: "$name" }      
    }
  },
  { 
    $set: { 
      gender: "$_id",
      _id: "$$REMOVE"
    } 
  }
])

相关问题