У меня есть коллекция в MongoDb со следующимиКак получить различные значения CONCAT 2 столбцов в MongoDB Spring
{
"_id" : ObjectId("5756b0rrffac18767"),
"year" : "1992",
"initial" : "A",
"name" : "test"
}
/* 2 */
{
"_id" : ObjectId("5756b0ffac18767"),
"year" : "1992",
"initial" : "B",
"name" : "test"
}
/* 3 */
{
"_id" : ObjectId("5756b0ffwwac18767"),
"year" : "1993",
"initial" : "A",
"name" : "test1"
}
/* 4 */
{
"_id" : ObjectId("5756b0ffacee767"),
"year" : "1992",
"initial" : "A",
"name" : "test"
}
Мне нужно, чтобы получить следующие результаты как
1992-A
1992-B
Мне нужно найти отчетливые каскадных колонн (год и начальные), где имя = «тест»
до сих пор я пытался как
public List<MyNames> getYears(String name) {
TypedAggregation<MyNames> agg = Aggregation.newAggregation(MyNames.class,
project("id","year", "initial"),
match(Criteria.where("name").is(name))
group("year")
);
AggregationResults<MyNames> result = mongoTemplate.aggregate(agg, MyNames.class);
List<MyNames> resultList = result.getMappedResults();
return resultList;
}
MyNames
@Document
общественного класса MyNames реализует Serializable {
private static final long serialVersionUID = -5763434erertr33331L;
@Id
private String id;
private int year;
private String name;
private String initial;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInitial() {
return initial;
}
public void setInitial(String initial) {
this.initial = initial;
}
@Override
public String toString() {
return "MyNames [id=" + id + ", year=" + year + ", name=" + name + ", initial=" + initial + "]";
}
}
Это не работает .. Любая помощь приветствуется ..
Не могли бы вы добавить объявление класса MyNames на вопрос? –
@AndriySimonov: Я добавил объявление класса MyNames –