В MongoDB Compass Aggregations я пытаюсь извлечь подмножество данных, используя $ match, чтобы выбрать только определенные документы в массиве, но все, что я пытаюсь, возвращает весь массив по сравнению только с документом в массиве, который соответствует критериям.
Here's the basic format of 1 document in the collection:
_id: "1"
Question: "xyz"
Subject: "Math"
answers: Array
0: Object
_id: "1"
Answer: "abc"
CorrectAnswer: "TRUE"
1: Object
_id: "2"
Answer: "lmnop"
CorrectAnswer: "FALSE"
2: Object
_id: "3"
Answer: "qrs"
CorrectAnswer: "FALSE"
Я пытаюсь извлечь только указанные c значения темы из внешнего документа (без проблем с использованием $ match), а также только те документы в массиве ответов, где CorrectAnswer: "TRUE" (проблема). Внутри окна $ match Aggregation я пробовал оба:
{ "answers.CorrectAnswer": "TRUE" }
, а также
{ answers: {$elemMatch: {CorrectAnswer: "TRUE"}}}
Оба возвращают весь массив ответов, а не только документ в массиве с CorrectAnswer: " ИСТИНА ".
Спасибо!