Diese Abtastdaten Gegeben:MongoDB aggregieren und zu transformieren Teilmenge von Daten auf der Grundlage Array von Werten
[
{
"_id": "5798ae78670bc85f3e3fe0df",
"defines": [
{
"domain": "ism:SecurityLabel",
"name": "access",
"@id": "ntk:access"
},
{
"domain": "ntk:AccessProfileType",
"name": "profileDes",
"@id": "ntk:profileDes"
},
{
"domain": "ntk:AccessType",
"name": "requiresAllOf",
"@id": "ntk:requiresAllOf"
},
{
"domain": "ism:SecurityLabel",
"name": "bannerMark",
"@id": "ism:bannerMark"
},
{
"label": "Need-to-Know Access Profile Type",
"name": "AccessProfileType",
"@id": "ntk:AccessProfileType"
},
{
"label": "Need-to-Know Access Type"
"name": "AccessType",
"@id": "ntk:AccessType"
}
]
},
{
"_id": "5798ae78670bc85f3e3fe0e1",
"defines": [
{
"domain": "ntk:AccessProfileType",
"name": "accessPolicy",
"@id": "ntk:accessPolicy"
},
{
"domain": "ism:SecurityLabel",
"name": "atomicEnergyMarking",
"@id": "ism:atomicEnergyMarking"
},
{
"domain": "ism:SecurityLabel",
"name": "classification",
"@id": "ism:classification"
}
]
}
]
ich brauche die Sammlung, wo defines.domain $in ["ism:SecurityLabel", "ntk:AccessProfileType"]
und Rück ein Objekt mit jeder Domäne zur Abfrage ein Array von seiner angepaßten definiert ist, wie folgt aus:
{
"ism:SecurityLabel": [
{
"domain": "ism:SecurityLabel",
"name": "access"
"@id": "ntk:access"
},
{
"domain": "ism:SecurityLabel",
"name": "bannerMark"
"@id": "ism:bannerMark"
},
{
"domain": "ism:SecurityLabel",
"name": "atomicEnergyMarking",
"@id": "ism:atomicEnergyMarking"
},
{
"domain": "ism:SecurityLabel",
"name": "classification",
"@id": "ism:classification"
}
],
"ntk:AccessProfileType": [
{
"domain": "ntk:AccessProfileType",
"name": "profileDes"
"@id": "ntk:profileDes"
},
{
"domain": "ntk:AccessProfileType",
"name": "accessPolicy"
"@id": "ntk:accessPolicy"
}
]
}
habe ich versucht, meine Ergebnisse zu passen und dann projizieren, aber ich habe wirklich keine Ahnung, wie ich die Daten aus dem Format, es ist in ich muss das Format umwandeln würde.
{
$match: {
'defines.domain': { $in: types }
}
},
{
$project: {
defines: {
$filter: {
// ??? not sure what to do ???
}
}
}
}
Danke, ich reparierte die Beispieldaten. – bflemi3