sql >> Databáze >  >> NoSQL >> MongoDB

vytvoření skupiny a analýza dat ze seznamu polí v Birt

Chcete-li získat požadovanou odpověď, postupujte podle níže uvedených kroků.

Údaje:

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. Průzkumník dat – Přejděte na Soubory dat – Nový soubor dat – Vyberte zdroj dat – Zadejte název souboru dat – Klikněte na Další

2. Název kolekce vstupů - stav zařízení - Uvádí všechna pole - Z rozevírací nabídky typu příkazu vyberte možnost Agregovat - Klikněte na Výraz

3. Přidejte níže uvedený výraz do výzvy k vytváření výrazů - Klikněte na OK

Níže uvedený výraz $unwind sloučit pole a rozložit pole stavu zařízení na dokumenty následované $project pro zachování požadovaných polí.

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

NEBO

Níže uvedený výraz iteruje pole stavu zařízení a $map a $project povinná pole následovaná $unwind zploštit, aby se pole rozložilo na dokumenty.

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

NEBO

4. Potvrďte aktualizaci – klikněte na ano

5. Přesuňte všechna dostupná pole do vybraného vícenásobného výběrového pole – klikněte na Dokončit

6. Náhled výsledků

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



  1. bson.D vs bson.M pro vyhledávací dotazy

  2. Mongodb Agregation Group podle logického nebo?

  3. Fronta zpráv Redis pubsub, ale se zpětným voláním, jako v ZeroMQ

  4. Jak vložit více položek najednou do kolekce MongoDB