Chcete-li získat požadovanou odpověď, postupujte podle níže uvedených kroků.
Údaje:
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. Průzkumník dat – Přejděte na Soubory dat – Nový soubor dat – Vyberte zdroj dat – Zadejte název souboru dat – Klikněte na Další
2. Název kolekce vstupů - stav zařízení - Uvádí všechna pole - Z rozevírací nabídky typu příkazu vyberte možnost Agregovat - Klikněte na Výraz
3. Přidejte níže uvedený výraz do výzvy k vytváření výrazů - Klikněte na OK
Níže uvedený výraz $unwind
sloučit pole a rozložit pole stavu zařízení na dokumenty následované $project
pro zachování požadovaných polí.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
NEBO
Níže uvedený výraz iteruje pole stavu zařízení a $map
a $project
povinná pole následovaná $unwind
zploštit, aby se pole rozložilo na dokumenty.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
NEBO
4. Potvrďte aktualizaci – klikněte na ano
5. Přesuňte všechna dostupná pole do vybraného vícenásobného výběrového pole – klikněte na Dokončit
6. Náhled výsledků
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}