Bitte befolgen Sie die nachstehenden Schritte, um die gewünschte Antwort zu erhalten.
Daten:
db.devicestatus.insert([
{
"_id": "0001",
"className":"store",
"deviceStatus": [ {
"deviceName": "CardReader",
"errorCode": "97080301",
"status": "Bad"
},
{
"deviceName": "CashAcceptor",
"errorCode": "97080302,97080303",
"status": "Bad"
},
{
"deviceName": "CashDispenser",
"errorCode": "",
"status": "Good"
}]
}
])
1.Daten-Explorer – Gehen Sie zu Datensätze – Neuer Datensatz – Wählen Sie Datenquelle – Geben Sie den Namen des Datensatzes ein – Klicken Sie auf „Weiter“
2.Geben Sie den Sammlungsnamen ein – Gerätestatus – Listet alle Felder auf – Wählen Sie die Option „Aggregieren“ aus der Dropdown-Liste „Befehlstyp“ – Klicken Sie auf „Ausdruck“
3.Fügen Sie den folgenden Ausdruck in der Eingabeaufforderung des Ausdrucksgenerators hinzu – Klicken Sie auf OK
Der folgende Ausdruck $unwind
um das Array zu glätten, um das Gerätestatus-Array in Dokumente zu zerlegen, gefolgt von $project
um die erforderlichen Felder beizubehalten.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
ODER
Der folgende Ausdruck durchläuft das Gerätestatus-Array und $map
und $project
die erforderlichen Felder, gefolgt von $unwind
zu glätten, um das Array in Dokumente zu zerlegen.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
ODER
4. Bestätigen Sie die Aktualisierung – Klicken Sie auf Ja
5. Verschieben Sie alle verfügbaren Felder in das ausgewählte Dropdown-Feld mit Mehrfachauswahl – Klicken Sie auf „Fertig stellen“
6.Vorschau der Ergebnisse
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}