Проблема с командой $group в MongoDB
У меня проблема с БД Mongo, где я пытаюсь сгруппировать результаты, используя команду ниже. Это сопоставляется с Java-объектом, содержащим поля id, name и список результатов. Однако атрибут name не будет отображаться правильно для меня. Атрибут $ name существует в документе, поэтому я не уверен, что является причиной проблемы. Если кто-нибудь может указать мне правильное направление, это будет оценено.
{
"$group": {
"_id": "$testCaseId",
"name": "$name",
"results": {
"$push": {
"testCaseId": "$testCaseId",
"executionId": "$executionId",
"resultCode": "$resultCode",
"time": "$time"
}
}
}
}
Вот структура Java-объекта, на который я отображаю:
private String id;
private String name;
private List<Results> results;
И ID и результаты заполняются правильно (если я удаляю имя), однако, когда я включаю имя, я получаю это исключение:
msgstr "исключение: групповое поле" имя "должно быть определено как выражение внутри объекта".
1 ответ
Пожалуйста, используйте операторы накопления группы, такие как $first
или же $last
,
$first
Возвращает значение из первого документа для каждой группы. $last
Возвращает значение из последнего документа для каждой группы.
{
"$group": {
"_id": "$testCaseId",
"name": {"$first" : "$name"},
"results": {
"$push": {
"testCaseId": "$testCaseId",
"executionId": "$executionId",
"resultCode": "$resultCode",
"time": "$time"
}
}
}
}