Por favor, siga os passos abaixo para obter a resposta desejada.
Dados:
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 - Vá para Conjuntos de Dados - Novo Conjunto de Dados - Selecione Fonte de Dados - Insira o Nome do Conjunto de Dados - Clique em Avançar
2.Insira o nome da coleção - devicestatus - Lista todos os campos - Selecione a opção Agregar no menu suspenso do tipo de comando - Clique em Expressão
3. Adicione a expressão abaixo no prompt do construtor de expressões - Clique em OK
A expressão abaixo
$unwind
para achatar o array para decompor o array devicestatus em documentos seguido por $project
para manter os campos obrigatórios. [
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
OU
A expressão abaixo itera sobre o array devicestatus e
$map
e $project
os campos obrigatórios seguidos por $unwind
para achatar para decompor a matriz em documentos. [{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
OU
4.Confirme para atualizar - Clique em sim
5. Mova todos os campos disponíveis para a caixa de seleção múltipla selecionada - Clique em Concluir
6.Visualizar resultados
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}