Siga los pasos a continuación para obtener la respuesta deseada.
Datos:
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.Explorador de datos - Ir a Conjuntos de datos - Nuevo conjunto de datos - Seleccionar fuente de datos - Nombre del conjunto de datos de entrada - Hacer clic en Siguiente
2. Ingrese el nombre de la colección:estado del dispositivo:enumera todos los campos:seleccione la opción Agregado en el menú desplegable del tipo de comando:haga clic en Expresión
3.Agregue la siguiente expresión en el indicador del generador de expresiones:haga clic en Aceptar
La siguiente expresión $unwind
para aplanar la matriz para descomponer la matriz de estado de dispositivos en documentos seguidos de $project
para mantener los campos obligatorios.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
O
La siguiente expresión itera sobre la matriz de estado de dispositivos y $map
y $project
los campos obligatorios seguidos de $unwind
para aplanar para descomponer la matriz en documentos.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
O
4.Confirme para actualizar:haga clic en sí
5. Mueva todos los campos disponibles al cuadro desplegable de selección múltiple seleccionado:haga clic en Finalizar
6.Vista previa de los resultados
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}