MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Erstellen von Gruppen und Analysieren von Daten aus der Array-Liste in Birt

Bitte befolgen Sie die nachstehenden Schritte, um die gewünschte Antwort zu erhalten.

Daten:

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.Daten-Explorer – Gehen Sie zu Datensätze – Neuer Datensatz – Wählen Sie Datenquelle – Geben Sie den Namen des Datensatzes ein – Klicken Sie auf „Weiter“

2.Geben Sie den Sammlungsnamen ein – Gerätestatus – Listet alle Felder auf – Wählen Sie die Option „Aggregieren“ aus der Dropdown-Liste „Befehlstyp“ – Klicken Sie auf „Ausdruck“

3.Fügen Sie den folgenden Ausdruck in der Eingabeaufforderung des Ausdrucksgenerators hinzu – Klicken Sie auf OK

Der folgende Ausdruck $unwind um das Array zu glätten, um das Gerätestatus-Array in Dokumente zu zerlegen, gefolgt von $project um die erforderlichen Felder beizubehalten.

[
  {"$unwind":"$deviceStatus"},
  {"$project":{
    "_id":0,
    "className":1,
   "deviceStatus.deviceName":1,
   "deviceStatus.errorCode":1
   }
  }
]

ODER

Der folgende Ausdruck durchläuft das Gerätestatus-Array und $map und $project die erforderlichen Felder, gefolgt von $unwind zu glätten, um das Array in Dokumente zu zerlegen.

[{
  "$project":{
    "_id":0,
    "className":1, 
    "deviceStatus":{
      "$map":{
        "input":"$deviceStatus",
        "as":"result",
        "in":{
          "deviceName":"$$result.deviceName",
          "errorCode":"$$result.errorCode"
        }
      }
    }
   }
 },
 {"$unwind":"$deviceStatus"}
]

ODER

4. Bestätigen Sie die Aktualisierung – Klicken Sie auf Ja

5. Verschieben Sie alle verfügbaren Felder in das ausgewählte Dropdown-Feld mit Mehrfachauswahl – Klicken Sie auf „Fertig stellen“

6.Vorschau der Ergebnisse

{"className":"store", "deviceStatus":{"deviceName":"CardReader","errorCode":"97080301"}}
{"className":"store", "deviceStatus":{ "deviceName":"CashAcceptor","errorCode":"97080302,97080303"}}
{"className":"store","deviceStatus":{"deviceName":"CashDispenser","errorCode":""}}