sql >> Database >  >> NoSQL >> MongoDB

groep maken en gegevens analyseren uit arraylijst in birt

Volg onderstaande stappen om het gewenste antwoord te krijgen.

Gegevens:

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.Gegevensverkenner - Ga naar Gegevenssets - Nieuwe gegevensset - Selecteer gegevensbron - Voer de naam van de gegevensset in - Klik op Volgende

2.Invoer verzamelingsnaam - apparaatstatus - Geeft alle velden weer - Selecteer de optie Samenvoegen in de vervolgkeuzelijst voor het opdrachttype - Klik op Uitdrukking

3.Voeg de onderstaande uitdrukking toe aan de prompt voor het maken van uitdrukkingen - Klik op OK

De onderstaande uitdrukking $unwind om de array af te vlakken om de devicestatus-array op te splitsen in documenten, gevolgd door $project om de vereiste velden te behouden.

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

OF

De onderstaande uitdrukking herhaalt de devicestatus-array en $map en $project de verplichte velden gevolgd door $unwind om de array af te vlakken in documenten.

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

OF

4.Bevestigen om te vernieuwen - Klik op ja

5.Verplaats alle beschikbare velden naar de geselecteerde vervolgkeuzelijst met meerdere selecties - Klik op Voltooien

6.Preview resultaten

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



  1. MongoDB-query IN array van object

  2. Mongo gebruiken met FLASK en python

  3. Mongodb-zoekopdracht met $ dichtbij en coördinaten werken niet

  4. mongodb versie 3.0.0 client robomongo mongovue