Сопоставить документы, если значение в массиве вложенных документов больше некоторого значения, только если этот же документ содержит поле, равное некоторому значению
У меня есть коллекция, содержащая документы с массивомсубдокументов.Этот массив вложенных документов содержит поле, которое определяет, могу ли я фильтровать документы в коллекции на основе другого поля вложенного документа.Это будет иметь больше смысла, когда вы увидите пример документа.
{
"_id":"ObjectId('XXX')",
"Data":{
"A":"",
"B":"-25.78562 ; 28.35629",
"C":"165"
},
"SubDocuments":[
{
"_id":"ObjectId('XXX')",
"Data":{
"Value":"XXX",
"DataFieldId":"B"
}
},
{
"_id":"ObjectId('XXX')",
"Data":{
"Value":"",
"DataFieldId":"A"
}
},
{
"_id":"ObjectId('XXX')",
"Data":{
"Value":"105",
"DataFieldId":"Z"
}
}
]
}
Я хочу сопоставлять только те документы, которые содержат вложенные документы, с DataFieldId, равным Z, но также фильтровать значения, которыебольше 105, только если идентификатор поля данных равен Z.