Veuillez suivre les étapes ci-dessous pour obtenir la réponse souhaitée.
Données :
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.Explorateur de données – Aller à Ensembles de données – Nouvel ensemble de données – Sélectionner la source de données – Entrer le nom de l'ensemble de données – Cliquez sur Suivant
2. Entrez le nom de la collection - devicestatus - Répertorie tous les champs - Sélectionnez l'option Agréger dans la liste déroulante des types de commande - Cliquez sur Expression
3.Ajoutez l'expression ci-dessous dans l'invite du générateur d'expression - Cliquez sur OK
L'expression ci-dessous $unwind
pour aplatir le tableau pour décomposer le tableau devicestatus en documents suivis de $project
pour conserver les champs obligatoires.
[
{"$unwind":"$deviceStatus"},
{"$project":{
"_id":0,
"className":1,
"deviceStatus.deviceName":1,
"deviceStatus.errorCode":1
}
}
]
OU
L'expression ci-dessous itère sur le tableau devicestatus et $map
et $project
les champs obligatoires suivis de $unwind
à aplatir pour décomposer le tableau en documents.
[{
"$project":{
"_id":0,
"className":1,
"deviceStatus":{
"$map":{
"input":"$deviceStatus",
"as":"result",
"in":{
"deviceName":"$$result.deviceName",
"errorCode":"$$result.errorCode"
}
}
}
}
},
{"$unwind":"$deviceStatus"}
]
OU
4.Confirmez pour actualiser - Cliquez sur oui
5.Déplacez tous les champs disponibles vers la liste déroulante à sélection multiple sélectionnée - Cliquez sur Terminer
6.Aperçu des résultats
{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}