базы данных MongoDB я хранить документы в формате:Создания Spring Data Aggregation множественных MongoDB запросы
{
"achievement": [
{
"userFromId":"max",
"userToId":"peter",
"date":"2016-01-25",
"pointCount":1,
"description":"good work",
"type":"THANKS"
}
]
}
Как получить количество записей в базе данных (если таковой имеется) для определенной даты, в которые люди благодарны другим людям. Я создал запрос для извлечения данных:
DBObject clause1 = new BasicDBObject("userFromId", userFromId);
DBObject clause2 = new BasicDBObject("userToId", userToId);
DBObject clause3 = new BasicDBObject("sendDate", localDate);
DBObject clause4 = new BasicDBObject("type", Thanks);
BasicDBList or = new BasicDBList();
or.add(clause1);
or.add(clause2);
or.add(clause3);
or.add(clause4);
DBObject query = new BasicDBObject("$or", or);
Но я не знаю, как получить количество записей, и как можно переписать запрос с использованием агрегации? Например:
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group("userFromId")
.first("userFromId").as("userFromId")
.sum("pointCount").as("pointCount"));
Я не знаю, как добавить еще несколько параметров. Какой запрос на возврат, если данные в базе данных не существуют?
Спасибо за любую помощь.
Вы можете добавить ожидаемый результат? Почему вы хотите использовать агрегацию? – Veeram
Мне нужно проверить true или false Я думал сделать это через список И затем проверить, есть ли данные в коллекции или нет. – Garazd