Очень спасибо за ваше время. Я работаю над коллекцией, в которой я хочу подвести итог той же даты. Рассмотрим следующий пример, здесь у меня есть два документа, в которых хранятся user_id и Play. Я хочу суммировать те документы, которые имеют ту же дату. В моем случае дата 2017-01-25 имеет два результата, а 2017-01-26 - только один. Пожалуйста, посмотрите на ожидаемый результат.
{
"_id" : ObjectId("58891b5656a961427e7b23c6"),
"user_id" : 122,
"played_event" : [
{
"date" : ISODate("2017-01-25T21:43:48.146Z"),
"totalPlayed" : 0,
},
{
"date" : ISODate("2017-01-26T22:26:03.273Z"),
"totalPlayed" : 838,
},
]
}
{
"_id" : ObjectId("58891b5656a961427e7b23f3"),
"user_id" : 130,
"played_event" : [
{
"date" : ISODate("2017-01-25T21:43:48.146Z"),
"totalPlayed" : 0,
},
{
"date" : ISODate("2017-01-30T22:26:03.273Z"),
"totalPlayed" : 838,
},
]
}
Ожидаемый результат
{
"result" : [
{
"date" : "2017-01-25"
"sum" : 2
},
{
"date":"2017-01-26"
"sum":1
},
],
"ok" : 1
}
Я пытаюсь сделать это с помощью следующего кода
[{"$unwind":"$played_event"},{"$match":{"$and":[{"played_event.date":{"$lte":{"sec":1530766799,"usec":0},"$gte":{"sec":1530162000,"usec":0}}},{"game_id":1}]}},{"$match":{"user_id":{"$nin":[1,2]}}},{"$group":{"_id":"$user_id","total":{"$sum":"$played_event.totalPlayed"},"events":{"$push":"$played_event.date"}}},{"$project":{"_id":0,"user_id":"$_id","total":1,"events":1}}]
но это не дает мне ожидаемых результатов, я подвожу итоги воспроизведения в моем запросе, но в данный момент это не требуется.