如何在mongoose中仅筛选与请求相对应的子文档

如何在mongoose中仅筛选与请求相对应的子文档,mongoose,Mongoose,我在mongodb中有两个级别的分层文档。 集合名称称为book,其子文档为author和author,如下所示: const bookSchema = new mongoose.Schema({ name: String, authors: [{ authorName : String, diplomes :[{ diplomeName: Strig, school: String

我在mongodb中有两个级别的分层文档。 集合名称称为book,其子文档为author和author,如下所示:


const bookSchema = new mongoose.Schema({
    name: String,
    authors: [{
        authorName : String,
        diplomes :[{
             diplomeName: Strig,
             school: String
        }]
}],

})
module.exports = mongoose.model('book', bookSchema);


[ 
   { 
      "name":"name1",
      "authors":[ 
         { 
            "authorName":"authirname1-1",
            "diplomes":[ 
               { 
                  "diplomeName":"diplomename1-1-1",
                  "school":"school1-1-1"
               },
               { 
                  "diplomeName":"diplomename1-1-2",
                  "school":"school1-1-2"
               }
            ]
         },
         { 
            "authorName":"authirname1-2",
            "diplomes":[ 
               { 
                  "diplomeName":"diplomename1-2-1",
                  "school":"school1-1-1"
               },
               { 
                  "diplomeName":"diplomename1-2-2",
                  "school":"school1-2-2"
               }
            ]
         },

      ]
   },
   { 
      "name":"name2",
      "authors":[ 
         { 
            "authorName":"authirname2-1",
            "diplomes":[ 
               { 
                  "diplomeName":"diplomename2-1-1",
                  "school":"school2-1-1"
               },
               { 
                  "diplomeName":"diplomename2-1-2",
                  "school":"school2-1-2"
               }
            ]
         },
         { 
            "authorName":"authirname2-2",
            "diplomes":[ 
               { 
                  "diplomeName":"diplomename2-2-1",
                  "school":"school2-1-1"
               },
               { 
                  "diplomeName":"diplomename2-2-2",
                  "school":"school2-2-2"
               }
            ]
         },

      ]
   }
]
我想要一本只有学校1-2-2的还书 预计结果如下:

[ 
   { 
      "name":"name1",
      "authors":[ 
         { 
            "authorName":"authirname1-2",
            "diplomes":[ 
               { 
                  "diplomeName":"diplomename1-2-2",
                  "school":"school1-2-2"
               }
            ]
         }
      ]
   }
]
请帮忙把它弄好
需要使用查找方法或聚合?

我们可以使用位置$[]运算符来检索此类数据,但不允许$[]运算符搜索2级深度的数据,这是您希望在2级深度数组中搜索数据的情况。有关更多问题,请参阅