Segui i passaggi seguenti per ottenere la risposta desiderata.
Dati:
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. Esplora dati - Vai a Set di dati - Nuovo set di dati - Seleziona l'origine dati - Inserisci il nome del set di dati - Fai clic su Avanti
2.Inserisci il nome della raccolta - devicestatus - Elenca tutti i campi - Seleziona l'opzione Aggrega dal menu a discesa del tipo di comando - Fai clic su Espressione
3.Aggiungi l'espressione seguente nel prompt del generatore di espressioni:fai clic su OK
L'espressione seguente $unwind
per appiattire l'array per scomporre l'array devicestatus in documenti seguiti da $project
per mantenere i campi obbligatori.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
O
L'espressione seguente scorre su devicestatus array e $map
e $project
i campi obbligatori seguiti da $unwind
appiattire per scomporre l'array in documenti.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
O
4.Conferma per aggiornare:fare clic su Sì
5.Sposta tutti i campi disponibili nella casella di riepilogo a selezione multipla selezionata:fai clic su Fine
6. Anteprima risultati
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}