嵌套文档上的MongoDB聚合

时间:2017-02-15 07:27:36

标签: node.js mongodb mongoose aggregation-framework mongoose-schema

我正在尝试将作业的数据存储在单独的集合中,并希望使用聚合框架从reportData字段获取所需的结果。

以下是我尝试按需要存储和更新的示例文档,稍后使用mongoose聚合框架。

{
    _id:ObjectId("566824667b51cecc1008d2b0"),
    jobID:"38231623-a7c6-45e5-8624-bf46fee7c095",
    reportData:{
    "38231623-a7c6-45e5-8624-bf46fee7c095":{
    ResumeCount:{
        Pending:4,
        Screened:7,
        Rejected:5,
        OnHold:9
    },
    createdOn:"24/01/2017",
    activeFrom:"28/01/2017",
    closedOn:"24/02/2017"
    },
    "572231213123123":{
        interviewStatus:{
        1:{
            RoundType:"HR",
            at:"24/01/2017"
        },
        2:{
            RoundType:"Technical",
            at:"29/01/2017"
        }   
        },
        candidateStatus:{
        1:{
        status:"Pending",
        at:"18/01/2017 23:45:00"            
        },
        2:{
        status:"ScreenSelect",
        at:"19/01/2017"         
        }           
        }
    },
        "572231213123190":{
        interviewStatus:{
        1:{
            RoundType:"Technical",
            at:"15/01/2017"
        },
        2:{
            RoundType:"Technical",
            at:"18/01/2017"
        }   
        },
        candidateStatus:{
        1:{
        status:"Pending",
        at:"18/01/2017"         
        },
        2:{
        status:"ScreenSelect",
        at:"19/01/2017"         
        }           
        }
    }
    }
}

{ _id:ObjectId("566824667b51cecc1008d2b0"), jobID:"38231623-a7c6-45e5-8624-bf46fee7c095", reportData:{ "38231623-a7c6-45e5-8624-bf46fee7c095":{ ResumeCount:{ Pending:4, Screened:7, Rejected:5, OnHold:9 }, createdOn:"24/01/2017", activeFrom:"28/01/2017", closedOn:"24/02/2017" }, "572231213123123":{ interviewStatus:{ 1:{ RoundType:"HR", at:"24/01/2017" }, 2:{ RoundType:"Technical", at:"29/01/2017" } }, candidateStatus:{ 1:{ status:"Pending", at:"18/01/2017 23:45:00" }, 2:{ status:"ScreenSelect", at:"19/01/2017" } } }, "572231213123190":{ interviewStatus:{ 1:{ RoundType:"Technical", at:"15/01/2017" }, 2:{ RoundType:"Technical", at:"18/01/2017" } }, candidateStatus:{ 1:{ status:"Pending", at:"18/01/2017" }, 2:{ status:"ScreenSelect", at:"19/01/2017" } } } } }

从上面我如何通过知道reportData字段中的正确数字(在本例中为3)来确保我为candidateStatus和interviewStatus插入新对象。

0 个答案:

没有答案