MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

tworzenie grup i analizowanie danych z listy tablic w birt

Wykonaj poniższe czynności, aby uzyskać pożądaną odpowiedź.

Dane:

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. Eksplorator danych - Przejdź do zestawów danych - Nowy zestaw danych - Wybierz źródło danych - Wprowadź nazwę zestawu danych - Kliknij Dalej

2. Wprowadź nazwę kolekcji - stan urządzenia - Wyświetla wszystkie pola - Wybierz opcję Agregacja z menu typu polecenia - Kliknij Wyrażenie

3. Dodaj poniższe wyrażenie w monicie konstruktora wyrażeń - kliknij OK

Poniższe wyrażenie $unwind spłaszczyć tablicę, aby rozłożyć tablicę devicestatus na dokumenty, po której następuje $project aby zachować wymagane pola.

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

LUB

Poniższe wyrażenie iteruje po tablicy devicestatus i $map i $project wymagane pola, po których następuje $unwind spłaszczyć, aby rozłożyć tablicę na dokumenty.

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

LUB

4. Potwierdź, aby odświeżyć - kliknij tak

5. Przenieś wszystkie dostępne pola do wybranego pola wyboru wielokrotnego - kliknij Zakończ

6. Podgląd wyników

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Kompromisy polegające na porzucaniu kolekcji a usuwaniu wszystkich jej dokumentów

  2. Jak mogę zwrócić tablicę obiektów mongodb w pymongo (bez kursora)? Czy MapReduce może to zrobić?

  3. Atomowość findAndModify na osadzonych dokumentach

  4. Jak zaimplementować tę operację zapytania i aktualizacji mongodb (sterownik CSharp)?

  5. Niezgodny potok agregacji Cosmos DB (Mongo API)?