Volg onderstaande stappen om het gewenste antwoord te krijgen.
Gegevens:
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.Gegevensverkenner - Ga naar Gegevenssets - Nieuwe gegevensset - Selecteer gegevensbron - Voer de naam van de gegevensset in - Klik op Volgende
2.Invoer verzamelingsnaam - apparaatstatus - Geeft alle velden weer - Selecteer de optie Samenvoegen in de vervolgkeuzelijst voor het opdrachttype - Klik op Uitdrukking
3.Voeg de onderstaande uitdrukking toe aan de prompt voor het maken van uitdrukkingen - Klik op OK
De onderstaande uitdrukking $unwind
om de array af te vlakken om de devicestatus-array op te splitsen in documenten, gevolgd door $project
om de vereiste velden te behouden.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
OF
De onderstaande uitdrukking herhaalt de devicestatus-array en $map
en $project
de verplichte velden gevolgd door $unwind
om de array af te vlakken in documenten.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
OF
4.Bevestigen om te vernieuwen - Klik op ja
5.Verplaats alle beschikbare velden naar de geselecteerde vervolgkeuzelijst met meerdere selecties - Klik op Voltooien
6.Preview resultaten
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}