sql >> Databasteknik >  >> NoSQL >> MongoDB

skapa grupp och analysera data från arraylista i birt

Följ stegen nedan för att få önskat svar.

Data:

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 - Gå till datamängder - Ny datauppsättning - Välj datakälla - Mata in datamängdsnamn - Klicka på Nästa

2. Indatasamlingsnamn - enhetsstatus - Listar alla fält - Välj Aggregate-alternativ i rullgardinsmenyn för kommandotyp - Klicka på Uttryck

3. Lägg till uttrycket nedan i uttrycksbyggarens prompt - Klicka på OK

Uttrycket nedan $unwind för att platta till arrayen för att dekomponera enhetsstatus array till dokument följt av $project för att behålla de obligatoriska fälten.

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

ELLER

Uttrycket nedan itererar över devicestatus array och $map och $project de obligatoriska fälten följt av $unwind att platta till för att dekomponera arrayen till dokument.

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

ELLER

4.Bekräfta för att uppdatera - Klicka på Ja

5.Flytta alla tillgängliga fält till den valda flervalsrutan - Klicka på Slutför

6.Förhandsgranska resultat

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



  1. Hur får man tillbaka uppdaterat dokument från metoden findOneAndUpdate?

  2. Klass 'MongoClient' hittades inte

  3. [Infographic] Jämför Cassandra vs. MongoDB

  4. ansluter till Mongodb inuti en dockare med mongodb kompass GUI