问题
I have a set of documents like:
{
"_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")
}
]
}
I want each key from the array of documents to be its own document. More specifically, If I were to view it in a table view, each "_id" would have a column for each "EffDate", each "PlanProductCode" ect.. I dont want to unwind because I will lose the unique _id. And I dont want there to be any "item" element. It would look something like:
{ "_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")}
}
来源:https://stackoverflow.com/questions/59688316/pivot-embedded-documents-keys-to-its-own-document-column-in-table-view-mongo