MongoDB: Comprobando si la matriz anidada contiene una submatriz
Tengo un caso de uso donde la base de datos se modela así:
name: XYZ
gradeCards: [{
id: 1234, // id of the report card
comments: ['GOOD','NICE','WOW']
}, {
id: 2345,
comments: ['GOOD','NICE TRY']
}]
Ahora, tengo una consulta que me gustaría consultar el esquema de la siguiente manera:
Me darían una lista de identificadores y valores. Por ejemplo: la lista dada es la siguiente:
[{
id: 1234,
comments: ['GOOD','NICE']
},{
id: 2345,
comments: ['GOOD']
}]
En resumen, la ID debe coincidir y los comentarios deben ser una sub-matriz de la matriz de comentarios para esa identificación y también, todas las condiciones especificadas en la matriz deben coincidir, por lo que debe ser una condición AND en todas las condiciones proporcionadas.
Pude llegar a esta consulta, pero coincide con todos los elementos en la matriz de comentarios, quiero que la identificación coincida exactamente y los comentarios sean una submatriz.
Para hacer coincidir todos los elementos en la matriz de comentarios:
db.getCollection('user').find({arr:{
$all: [{
id:1234,
comments:['GOOD','NICE','WOW']
},{
id:2345,
comments:['GOOD','NICE TRY']
}]
}})