2016-11-09 9 views
1

Любой может преобразовать этот запрос в mongo для java (org.springframework.data.mongodb.core.MongoOperations) ???Convert query mongo to spring Mongooperations

Я не смог получить этот поиск на Java.

спасибо.

db.respostas.aggregate([ 
    { 
     "$group":{ 
     "_id":{ 
      "per":"$pergunta", 
      "res":"$resposta" 
     }, 
     "respostaCount":{ 
      "$sum":1 
     } 
     } 
    }, 
    { 
     "$group":{ 
     "_id":"$_id.per", 
     "respostas":{ 
      "$push":{ 
       "resposta":"$_id.res", 
       "count":"$respostaCount" 
      } 
     }, 
     "count":{ 
      "$sum":"$respostaCount" 
     } 
     } 
    }, 
    { 
     "$sort":{ 
     "count":-1 
     } 
    } 
]) 
+0

Пожалуйста, добавьте то, что вы пробовали. – Veeram

+0

То, что я только что, потому что я не знаю, как сделать @Veeram: 'Aggregation AGG = newAggregation ( \t \t \t группа ("pergunta", "resposta") \t \t \t \t .count(), как. ("respostaCount"), \t \t \t группа(), \t \t \t сортировки (Sort.Direction.DESC, "граф") \t); ' – Laisson

+0

пожалуйста, добавьте образец документа – Veeram

ответ

1

Вы можете попробовать что-то вроде этого.

Aggregation agg = newAggregation(
      group(fields().and("per", "$pergunta").and("res", "$resposta")).count().as("respostaCount"), 
      group(fields("$_id.per")).push(new BasicDBObject("resposta", "$_id.res").append("count", "$respostaCount")) 
        .as("respostas").sum("respostaCount").as("count"), 
      sort(Sort.Direction.DESC, "count")); 
+0

шоу, работал отлично !!! Tks – Laisson

+0

После некоторых тестов я увидел, что информация верна. Я сделал некоторые изменения и, таким образом:.. 'Aggregation AGG = newAggregation ( \t \t \t группы (поля() и ("за", "$ pergunta") и ("Рес", "$ resposta")) .count(). as ("respostaCount"), \t \t \t группа (поля ("$ _ id.per")). push (новый BasicDBObject ("resposta", "$ _id.res"). append ("count », "$ respostaCount")), как (. "respostas"), \t \t \t рода (Sort.Direction.DESC, "рассчитывать"));' Не хватало только сумма всех ответов, я пытался поставьте '.sum (« $ respostaCount »). как (« count »)' в конце, но это не сработало, а затем удалено. – Laisson

+0

в порядке. Я посмотрю и быстро отредактирую ответ. – Veeram

Смежные вопросы