#mongodb #spring-boot
#mongodb #весенняя загрузка
Вопрос:
Я использую приведенный ниже код, чтобы получить месяц из поля даты в коллекции MongoDB. Я хочу использовать extractMonth() в MongoDB данных aggregation-Spring.
ProjectionOperation project = project("Id").andExpression("Date").extractMonth().as("month");
GroupOperation group = group("Id", "month").count().as("count");
Aggregation agg = Aggregation.newAggregation(project, match, group).withOptions(Aggregation.newAggregationOptions().cursor(new BasicDBObject()).build());
DBObject resultset = mMongoTemplate.aggregate(agg, collectionName, JSONObject.class).getRawResults();
Но я получаю сообщение об ошибке ниже:
Не удается преобразовать строку типа BSON в дату в конвейере агрегации
Пример данных
/* 1 */
{
"_id" : "001",
"createDate" : "2020-04-29T09:53:40.356 0000",
"createdBy" : "abc",
},
/* 2 */
{
"_id" : "002",
"createDate" : "2020-03-16T22:59:42.023 0000",
"createdBy" : "cde",
}
тип Date
поля в коллекции: String
Spring-data-MongoDB version: 1.6.0 release
Как мне приступить к получению результатов с вышеуказанной версией?
Комментарии:
1. Вы никогда не должны хранить значения данных / времени в виде строки, используйте соответствующие
Date
объекты. Поскольку вы не предоставляете никаких образцов данных, мы не можем сказать вам, как их преобразовать.2. Пример данных обновлен @WernfriedDomscheit