Erstellen Sie Frühjahr die Aggregation der Daten aus MongoDb aggregation-Abfrage
Kann einer mir helfen konvertieren, das mongoDB aggregation zu spring data mongo?
Ich versuche, Liste der un-erinnerte Teilnehmers E-Mail in jeder Einladung Dokument.
Habe es funktioniert in der mongo-shell, aber müssen tun Sie es im Frühjahr Daten mongo.
Meine shell Abfrage
db.invitation.aggregate(
[
{ $match : {_id : {$in : [id1,id2,...]}}},
{ $unwind : "$attendees" },
{ $match : { "attendees.reminded" : false}},
{ $project : {_id : 1,"attendees.contact.email" : 1}},
{ $group : {
_id : "$_id",
emails : { $push : "$attendees.contact.email"}
}
}
]
)
Dies ist, was ich kam mit, wie Sie sehen können, es funktioniert nicht wie erwartet zu einem Projekt und Gruppe Betrieb der pipeline. Generierte Abfrage wird unten gegeben.
Aggregation Objekt-Erstellung
Aggregation aggregation = newAggregation(
match(Criteria.where("_id").in(ids)),
unwind("$attendees"),
match(Criteria.where("attendees.reminded").is(false)),
project("_id","attendees.contact.email"),
group().push("_id").as("_id").push("attendees.contact.email").as("emails")
);
Schafft es die folgende Abfrage
Abfrage generiert, die durch Aggregation Objekt
{ "aggregate" : "__collection__" , "pipeline" : [
{ "$match" : { "_id" : { "$in" : [id1,id2,...]}}},
{ "$unwind" : "$attendees"},
{ "$match" : { "attendees.reminded" : false}},
{ "$project" : { "_id" : 1 , "contact.email" : "$attendees.contact.email"}},
{ "$group" : { "_id" : { "$push" : "$_id"}, "emails" : { "$push" : "$attendees.contact.email"}}}]}
Ich nicht wissen, die richtige Art der Verwendung von Aggregations-Gruppe im Frühjahr Daten mongo.
Könnte jemand mir bitte helfen oder den link geben zu der Gruppe aggregation mit $push etc?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Richtige Syntax wäre:
Referenz: http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.group