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']
}]
}})