Mam dokument, który zawiera datę i chcę zgrupować dokument według kwartalnie. Jak mogę to zrobić w MongoDB?
Moje schematu jest:Jak pogrupować datę co kwartał w MongoDB
var ekgsanswermodel = new mongoose.Schema({
userId: {type: Schema.Types.ObjectId},
topicId : {type: Schema.Types.ObjectId},
ekgId : {type: Schema.Types.ObjectId},
answerSubmitted :{type: Number},
dateAttempted : { type: Date},
title : {type: String},
submissionSessionId : {type: String}
});
1 kwartał zawierać Miesięcy 1, 2, 3. 2 kwartał zawierają miesiące 4, 5, 6 i tak dalej w górę do 4 kwartału. Moja ostateczna odpowiedź powinna być:
"result" : [
{
_id: {
quater:
},
_id: {
quater:
},
_id: {
quater:
},
_id: {
quater:
}
}
próbowałeś użyciu MapReduce MongoDB jest? http://docs.mongodb.org/manual/core/map-reduce/ Myślę, że możesz odwzorować swoje miesiące zaokrąglone MonthNumber/4. Coś jak emituj (this.number/4, this.number). A w części REDUCE grupujesz wszystkie miesiące. – AzaFromKaza
Nie próbowałem mapreduce. może dać mi przykład. dodałem także schemat powyżej. –
Nie martw się moim rozwiązaniem @grishabh, ten poniżej jest lepszy. Mongodb mapreduce nie pozwala na posiadanie tablicy w wyniku zmniejszenia działania. Odnośnik: http://stackoverflow.com/questions/8175015/mongodb-mapreduce-reduce-multiple-not-supported-yet – AzaFromKaza