MongoDB: Verificando se a matriz aninhada contém sub-matriz

Eu tenho um caso de uso em que o banco de dados é modelado assim:

name: XYZ
gradeCards: [{
  id: 1234, // id of the report card
  comments: ['GOOD','NICE','WOW']
}, {
  id: 2345,
  comments: ['GOOD','NICE TRY']
}]

Agora, tenho uma consulta que gostaria de consultar o esquema da seguinte maneira:

Eu receberia uma lista de identificações e valores. Por exemplo: a lista fornecida é a seguinte:

[{
  id: 1234,
  comments: ['GOOD','NICE']
},{
  id: 2345,
  comments: ['GOOD']
}]

Em resumo, o ID deve corresponder e os comentários devem ser uma sub-matriz do conjunto de comentários para esse ID e também, todas as condições especificadas na matriz devem corresponder, portanto, deve ser uma condição AND em todas as condições fornecidas.

Consegui chegar a essa consulta, mas ela corresponde a todos os elementos na matriz de comentários. Quero que o ID seja exatamente correspondido e que os comentários sejam uma sub-matriz.

Para combinar todos os elementos na matriz de comentários:

db.getCollection('user').find({arr:{
    $all: [{
        id:1234,
        comments:['GOOD','NICE','WOW']
    },{
        id:2345,
        comments:['GOOD','NICE TRY']
    }]
 }})

questionAnswers(1)

yourAnswerToTheQuestion