Multiple sub document data to one - Mongoose aggregate

11 views
Skip to first unread message

Henry Robert R

unread,
Nov 29, 2018, 10:25:35 PM11/29/18
to node-mongodb-native
I am having the following document structure

[{
    "company": "company name 1",
    "location": "IN",
    "sectors" : ["sectors1","sectors2"],
    "casestudies" : [{
        "_id" : "234324easdasdasdd",
        "title" : "CN1 Casestudy 1",
        "pdf" : "asdasdasdasd.pdf"
    },{
        "_id" : "4564easdasdasdd",
        "title" : "CN1 Casestudy 2",
        "pdf" : "asdasdrf43asdasd.pdf"
    }],
    "pressreleases" : [{
        "_id" : "765324easdasdasdd",
        "title" : "CN1 pressreleases 1",
        "pdf" : "asd345sdasd.pdf"
    },{
        "_id" : "45764easdasdasdd",
        "title" : "CN1 pressreleases 2",
        "pdf" : "asda223asd.pdf"
    }]
    "companynews" : [{
        "_id" : "gfd65dasdd",
        "title" : "CN1 companynews 1",
        "pdf" : "fd6dasd.pdf"
    },{
        "_id" : "s56565d",
        "title" : "CN1 companynews 2",
        "pdf" : "j7sasasd.pdf"
    }]
},
{
    "company": "company name 2",
    "location": "US",
    "sectors" : ["sectors21","sectors22"],
    "casestudies" : [{
        "_id" : "ssasdasdasdd",
        "title" : "CN2 Casestudy 1",
        "pdf" : "asdasdasdasd.pdf"
    },{
        "_id" : "dasdasdd",
        "title" : "CN2 Casestudy 2",
        "pdf" : "asdasdrf43asdasd.pdf"
    }],
    "pressreleases" : [{
        "_id" : "asdasdd",
        "title" : "CN2 pressreleases 1",
        "pdf" : "asd345sdasd.pdf"
    },{
        "_id" : "asdasdd",
        "title" : "CN2 pressreleases 2",
        "pdf" : "asda223asd.pdf"
    }]
    "companynews" : [{
        "_id" : "jhgbfvasdd",
        "title" : "CN2 companynews 1",
        "pdf" : "fd6dasd.pdf"
    },{
        "_id" : "mnbvcsdfgy",
        "title" : "CN2 companynews 2",
        "pdf" : "j7sasasd.pdf"
    }]
}]

 I tried to achieve this output : 

{
    companys_details : [{
        "company": "company name 1",
        "location": "IN",
        "sectors" : ["sectors1","sectors2"]
    },{
        "company": "company name 2",
        "location": "US",
        "sectors" : ["sectors21","sectors22"]
    }],
    casestudies : [{
        "_id" : "234324easdasdasdd",
        "title" : "CN1 Casestudy 1",
        "pdf" : "asdasdasdasd.pdf"
    },{
        "_id" : "4564easdasdasdd",
        "title" : "CN1 Casestudy 2",
        "pdf" : "asdasdrf43asdasd.pdf"
    },{
        "_id" : "ssasdasdasdd",
        "title" : "CN2 Casestudy 1",
        "pdf" : "asdasdasdasd.pdf"
    },{
        "_id" : "dasdasdd",
        "title" : "CN2 Casestudy 2",
        "pdf" : "asdasdrf43asdasd.pdf"
    }],
    "pressreleases" : [{
        "_id" : "765324easdasdasdd",
        "title" : "CN1 pressreleases 1",
        "pdf" : "asd345sdasd.pdf"
    },{
        "_id" : "45764easdasdasdd",
        "title" : "CN1 pressreleases 2",
        "pdf" : "asda223asd.pdf"
    },{
        "_id" : "asdasdd",
        "title" : "CN2 pressreleases 1",
        "pdf" : "asd345sdasd.pdf"
    },{
        "_id" : "asdasdd",
        "title" : "CN2 pressreleases 2",
        "pdf" : "asda223asd.pdf"
    }],
    "companynews" : [{
        "_id" : "gfd65dasdd",
        "title" : "CN1 companynews 1",
        "pdf" : "fd6dasd.pdf"
    },{
        "_id" : "s56565d",
        "title" : "CN1 companynews 2",
        "pdf" : "j7sasasd.pdf"
    },{
        "_id" : "jhgbfvasdd",
        "title" : "CN2 companynews 1",
        "pdf" : "fd6dasd.pdf"
    },{
        "_id" : "mnbvcsdfgy",
        "title" : "CN2 companynews 2",
        "pdf" : "j7sasasd.pdf"
    }]
}

I tried many solutions.. most of the solutions work till "casestudies"

How can i acheive this ?

I tried with populate and aggregate unwind, group & push.
Reply all
Reply to author
Forward
0 new messages