Reputation: 768
I have a collection having following documents -
{"_id":ObjectId("xxx"),"article_Id":"1","publish_Time":NumberLong(10)}
{"_id":ObjectId("yyy"),"article_Id":"1","publish_Time":NumberLong(11)}
{"_id":ObjectId("zzz"),"article_Id":"1","publish_Time":NumberLong(12)}
I want to aggregate on article_id and desired result is somewhat like -
{"_id":{"articleId":"1"}, pub_t:[publish_Time":NumberLong(10),publish_Time":NumberLong(11),publish_Time":NumberLong(10)]}
I want to combine the publish_time field in separate documents to one array in resultant. How can I do this? Thanks in Advance.
Upvotes: 1
Views: 276
Reputation: 34581
db.articles.aggregate(
{
$group:
{
_id:
{
articleId: "$article_Id"
},
pub_t:
{
$push: "$publish_Time"
}
}
})
{
"_id" : {
"articleId" : "1"
},
"pub_t" : [
NumberLong(10),
NumberLong(11),
NumberLong(12)
]
}
Upvotes: 1