Поддерживает ли Spring Data MongoDb оператор агрегации массивов $ filter?
Я пытаюсь реализовать в Spring Data с помощью MongoTemplate следующий рабочий запрос mongoDb:
db.answers.aggregate([
{ "$match" : { "object_id" : "1" } },
{ "$project": { 'answer_list': 1, 'profile': { $filter : { input: '$answer_list', as: 'answer', cond: { $eq: [ '$answer.question', 2 ] } } } } },
{ "$unwind" : "$profile"},
{ "$unwind" : "$answer_list"},
{ "$group" : { "_id" : { "question" : "$answer_list.question", "answer" : "$answer_list.answer", "criteria" : "$profile.answer"}, "count" : { "$sum" : 1 } } },
{ "$sort" : { "_id.question" : 1, "_id.answer" : 1 } }
]);
Коллекция имеет такую структуру:
{
"_id" : ObjectId("..."),
"object_id" : ObjectId("..."),
"answer_list" : [
{
"question" : NumberLong(0),
"answer" : NumberLong(0)
},
{
"question" : NumberLong(1),
"answer" : NumberLong(2)
},
{
"question" : NumberLong(2),
"answer" : NumberLong(2)
}
]}
То, что я пытаюсь сделать здесь, - это отчет о простых данных для отправки в опрос. Вопрос «Как пользователи, ответившие 0 на первый вопрос, ответили на второй вопрос?» Я провел весь день в поисках документов SpringData Mongo Db, но ничего не нашел. Кто-нибудь может помочь?
ТИА