Поверните ключи встроенных документов в собственный документ (столбец в табличном представлении) Mongo - PullRequest
0 голосов
/ 10 января 2020

У меня есть набор документов, например:

{ 
"_id" : ObjectId("53ad60c1600f5b241c693ce2"), 
"items" : [
    {
        "EffDate" : ISODate("2014-05-01T00:00:00.000+0000"), 
        "PlanProductCode" : "317", 
        "PlanProduct" : "Medicare SNP", 
        "BenefitPackage" : "SUPERIOR HEALTH PLAN INC, SU MEDICARE ADVANTAGE PLAN", 
        "EndDate" : ISODate("9999-12-31T00:00:00.000+0000")
    }, 
    {
        "EffDate" : ISODate("2014-05-01T00:00:00.000+0000"), 
        "PlanProductCode" : "317", 
        "PlanProduct" : "Medicare SNP", 
        "BenefitPackage" : "SUPERIOR HEALTH PLAN INC, SU MEDICARE ADVANTAGE PLAN", 
        "EndDate" : ISODate("2015-04-30T00:00:00.000+0000")
    }, 
    {
        "EffDate" : ISODate("2015-05-01T00:00:00.000+0000"), 
        "PlanProductCode" : "3120", 
        "PlanProduct" : "TX Duals", 
        "BenefitPackage" : "TX MEDICARE DUALS", 
        "EndDate" : ISODate("2016-11-30T00:00:00.000+0000")
    }
]
}

Я хочу, чтобы каждый ключ из массива документов был отдельным документом. Более конкретно, если бы я смотрел это в табличном представлении, у каждого «_id» был бы столбец для каждого «EffDate», каждого «PlanProductCode» и т. Д. Я не хочу раскручивать, потому что я потеряю уникальный _id. И я не хочу, чтобы там был какой-либо элемент "item". Это будет выглядеть примерно так:

{ "_id" : ObjectId("53ad60c1600f5b241c693ce2"),
    {"EffDate" : ISODate("2014-05-01T00:00:00.000+0000")},
    {"PlanProduct" : "Medicare SNP"},
    {"BenefitPackage" : "SUPERIOR HEALTH PLAN INC, SU MEDICARE ADVANTAGE PLAN"},
    {"EndDate" : ISODate("9999-12-31T00:00:00.000+0000"},
    {"EffDate" : ISODate("2014-05-01T00:00:00.000+0000")},
    {"PlanProductCode" : "317"},
    {"PlanProduct" : "Medicare SNP"},
    {"BenefitPackage" : "SUPERIOR HEALTH PLAN INC, SU MEDICARE ADVANTAGE PLAN"},
    {"EndDate" : ISODate("2015-04-30T00:00:00.000+0000")},
    {"EffDate" : ISODate("2015-05-01T00:00:00.000+0000")},
    {"PlanProductCode" : "3120"},
    {"PlanProduct" : "TX Duals"},
    {"BenefitPackage" : "TX MEDICARE DUALS"},
    {"EndDate" : ISODate("2016-11-30T00:00:00.000+0000")}
}
...