2017-12-11 10 views
1

birtレポートでmongo dbを使用しています。私は画像のようなオブジェクトの配列を含むデータセットを持っています。グループを作成し、birtの配列リストからデータを分析する

enter image description here

私はグループを作成するとき、レポートにDEVICENAMEためのグループを作成したいdeviceStatus状態のような子オブジェクトを含む配列である、erroCode、DEVICENAMEなど

、それが内に作成されこのフォーム:

[ "CardReader" , "CashAcceptor" , "CashDispenser" , "ChequeAcceptor" , "EmiratesIdScanner" , "PinPad" , "JournalPrinter" , "ReceiptPrinter" , "StatementPrinter" , "SignpadScanner"] 

私はそれは次のように壊れた形でグループ化することにしたい。

CardReader 
CashAcceptor 
CashDispenser .. 

またのerrorCodeは、データセットからこの形で来ている:私のような各DEVICENAMEの配列形態から各行にエラーコードとステータスコードを破壊したいと同じように

[ "97080301" , "97080302,97080303" , "" , "" , "" , "" , "" , "" , "" , ""] 

CardReader 97080301 
CashAcceptor 97080302,97080303 
CashDispenser 

私はバットに新しいです、誰か助けてください。前もって感謝します。

Veeramの答えを適用した後、errorCodeをレポートに表示されていないが、そのそこにプレビュー結果で:

1: enter image description here

2:

enter image description here

答えて

1

手順の下に従ってください。希望の応答を得る。

データ:新しいデータセット - - [データソースの選択 - 入力データ・セット名 - 次

enter image description here

2.Inputをクリック

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は - データセットにアクセスしてくださいコレクション名 - devicestatus - すべてのフィールドを一覧表示 - コマンドタイプドロップダウンから集計オプションを選択 - 式をクリック

enter image description here

式ビルダープロンプトで表現以下3.Add - 必要なフィールドを維持するために$project続い文書にdevicestatus配列を分解するために、配列を平らにするためにOK

表現 $unwind以下

enter image description here

をクリックします。

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

OR

表現が繰り返さ以下ザ・devicestatusアレイと$map$project文書に配列を分解するために平らにする$unwind続い必要なフィールドを超えます。

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

OR

4.Confirmをリフレッシュするために -

5.Move選択マルチ選択ドロップボックスに使用可能なすべてのフィールド

enter image description here [はい]をクリックします - [完了]をクリックし

enter image description here

6.Pre結果を見る

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

お返事ありがとうございます!!!!私はしばらくのうちに確認して確認します!再度、感謝します。 – Talib

+0

私はこれに答える時間を費やして非常に感謝しています。私は非常にbirtとmongo DBにも新しいです。あなたは私たちがデータセットに書いた表現の目的は何ですか? – Talib

+0

喜んで助けてください。どういたしまして。いくつかの説明とリンクを追加しました。 – Veeram

関連する問題