2017-10-03 7 views
1

** Chaque document contient datetime différent mais je veux agréger sur la base seule date **Comment obtenir le résultat agrégé sur la base de « dd-MM-AAAA » à l'aide des données du printemps mongodb

/* 1 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4c5"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-03T11:44:51.127+05:30"), 
    "name" : "frji-1" 
}, 

/* 2 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4c6"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-03T11:44:51.127+05:30"), 
    "name" : "frji-2" 
}, 

/* 3 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4c7"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-03T11:44:51.127+05:30"), 
    "name" : "frji-3" 
}, 

/* 4 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4c8"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-03T11:44:51.127+05:30"), 
    "name" : "frji-4" 
}, 

/* 5 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4c9"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-03T11:44:51.127+05:30"), 
    "name" : "frji-5" 
}, 

/* 6 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4ca"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-04T01:44:51.127+05:30"), 
    "name" : "frji-6" 
}, 

/* 7 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4cb"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-04T01:44:51.127+05:30"), 
    "name" : "frji-7" 
}, 

/* 8 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4cc"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-04T01:44:51.127+05:30"), 
    "name" : "frji-8" 
}, 

/* 9 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4cd"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-04T01:44:51.127+05:30"), 
    "name" : "frji-9" 
}, 

/* 10 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4ce"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-04T01:44:51.127+05:30"), 
    "name" : "frji-10" 
}, 

/* 11 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4cf"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-02T11:44:51.127+05:30"), 
    "name" : "frji-11" 
}, 

/* 12 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4d0"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-02T11:44:51.127+05:30"), 
    "name" : "frji-12" 
}, 

/* 13 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4d1"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-02T11:44:51.127+05:30"), 
    "name" : "frji-13" 
}, 

/* 14 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4d2"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-02T11:44:51.127+05:30"), 
    "name" : "frji-14" 
}, 

/* 15 createdAt:10/3/2017, 11:44:51 AM*/ 
{ 
    "_id" : ObjectId("59d32adb816e3e567910a4d3"), 
    "_class" : "com.mongo.test.MongoData", 
    "date" : ISODate("2017-10-02T11:44:51.127+05:30"), 
    "name" : "frji-15" 
} 

classe entité est de communiquer avec mongo en utilisant sprin-données MongoDB

@Document(collection="integer_test") 
public class MongoData { 
    @Id 
    private String id; 
    private Date 
    date; 
    private String name; 
    @Override 
    public String toString() { 
     return "MongoData [date=" + date + ", id=" + id + "]"; 
    } 
    public String getId() { 
     return id; 
    } 
    public void setId(String id) { 
     this.id = id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public Date getDate() { 
     return date; 
    } 
    public void setDate(Date date) { 
     this.date = date; 
    } 

} 

agrégé classe résultat de données

public class AggData { 

    private Date date; 
    private int total; 

    public Date getDate() { 
     return date; 
    } 


    public void setDate(Date date) { 
     this.date = date; 
    } 


    public int getTotal() { 
     return total; 
    } 


    public void setTotal(int total) { 
     this.total = total; 
    } 
} 

Alors comment obtenir le résultat agrégé en classe AggData utilisant ressort des données mongodb.I je utilise mongotemplate pour communiquer avec db

Répondre

1

Ceci est vous pouvez essayer avec Mongotemplate

GroupOperation groupOperation=Aggregation.group("date").first(StringOperators.Substr.valueOf("date").substring(0, 10)).as("date").count().as("total"); 

    Aggregation aggregation=Aggregation.newAggregation(groupOperation); 
    AggregationResults<AggData> aggregationResults=mongoTemplate.aggregate(aggregation, "integer_test",AggData.class); 
+0

Merci Devendra c'est fonctionne bien –