Vibhav Singh Rohilla
Vibhav Singh Rohilla

Reputation: 768

Concatenate mongo db fields while aggregating java

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

Answers (1)

Dmytro Shevchenko
Dmytro Shevchenko

Reputation: 34581

Query

db.articles.aggregate(
{
    $group:
    {
        _id:
        {
            articleId: "$article_Id"
        },
        pub_t:
        {
            $push: "$publish_Time"
        }
    }
})

Result

{
    "_id" : {
        "articleId" : "1"
    },
    "pub_t" : [
        NumberLong(10),
        NumberLong(11),
        NumberLong(12)
    ]
}

Upvotes: 1

Related Questions