, Вы ожидаете, что операторы будут работать определенным образом, чего они не могут делать. Пожалуйста, прочитайте о них.
я есть случай, когда база данных моделируется следующим образом:
name: XYZ
gradeCards: [{
id: 1234, // id of the report card
comments: ['GOOD','NICE','WOW']
}, {
id: 2345,
comments: ['GOOD','NICE TRY']
}]
Теперь у меня есть запрос, который я хотел бы запросить схему следующим образом:
Мне бы дали список идентификаторов и значений. Например: данный список выглядит следующим образом:
[{
id: 1234,
comments: ['GOOD','NICE']
},{
id: 2345,
comments: ['GOOD']
}]
Короче говоря, идентификатор должен совпадать, и комментарии должны быть подмассивом массива комментариев для этого идентификатора, а также все условия, указанные в массиве, должны совпадать, поэтому это должно быть условие И для всех предоставленных условий.
Мне удалось добраться до этого запроса, но он соответствует всем элементам массива комментариев, я хочу, чтобы идентификатор был точно совпадает, а комментарии должны быть вложенным массивом.
Для сопоставления всех элементов в массиве комментариев:
db.getCollection('user').find({arr:{
$all: [{
id:1234,
comments:['GOOD','NICE','WOW']
},{
id:2345,
comments:['GOOD','NICE TRY']
}]
}})