У меня есть коллекция документов EvaluationGroups, в которой каждый объект группы оценки имеет список оценок. Каждый объект Evaluation имеет список объектов Detail. Каждая деталь содержит список объектов Label. Метка — это объект со свойством с именем LabelId и свойством с именем Value. (Подробности определяют комбинацию меток и показывают некоторые другие данные, и каждая комбинация меток представляет другой тип оценки).
Пример документа:
Что я хотел бы сделать, так это отфильтровать все оценки в списках внутри EvaluationGroups, у которых есть детали с любой меткой с тем же LabelId и LabelValue (строки) заданной метки. Итак, подводя итог, я хочу фильтровать оценки по ярлыку.
Как я могу добиться этого с помощью запроса mongodb, используя этапы агрегирования и сопоставления?
Я пробовал это:
{ "$match" :
{
"$expr" : {
$anyElementTrue: {
$and: [
{ $eq: [ "$Evaluations.Details.Labels.LabelId", "5fe34b13f0031e1078e08b5c" ] },
{ $eq: [ "$Evaluations.Details.Labels.Value", "CREDIT" ] }
]
}
} }}
Но я получаю 0 результатов, зная, что у меня есть оценки с этим ярлыком (с этим идентификатором и значением).
Любая помощь будет оценена по достоинству!
anyElementTrue
? - person Gibbs   schedule 12.01.2021