Моля, следвайте стъпките по-долу, за да получите желания отговор.
Данни:
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.Data Explorer - Отидете на Набори от данни - Нов набор от данни - Изберете източник на данни - Въведете име на набор от данни - Щракнете върху Напред
2. Въведете име на колекцията - devicestatus - Изброява всички полета - Изберете опцията Aggregate от падащото меню тип команда - Щракнете върху Expression
3. Добавете израза по-долу в подканата за съставител на изрази - щракнете върху OK
Изразът по-долу $unwind
за изравняване на масива, за да се разложи масивът на devicesstatus в документи, последвани от $project
за да запазите задължителните полета.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
ИЛИ
Изразът по-долу итерира масива devicesstatus и $map
и $project
задължителните полета, последвани от $unwind
за изравняване, за да разложите масива на документи.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
ИЛИ
4.Потвърдете за опресняване - щракнете върху да
5. Преместете всички налични полета в избраното падащо поле за множествен избор - щракнете върху Готово
6. Преглед на резултатите
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}