Cześć

Mam do rozwiązania pare zadań z którymi nie bardzo mogę sobie poradzić. Zadania należy wykonać za pomocą Map-reduce oraz tam gdzie się da za pomocą agregacji.

Zadania są następujące:

  1. Średnią wagę i wzrost osób w bazie z podziałem na płeć (tzn. osobno mężczyzn, osobno kobiet);
  2. Łączną ilość środków pozostałych na kartach kredytowych osób w bazie, w podziale na waluty;
  3. Listę unikalnych zawodów;
  4. Średnie, minimalne i maksymalne BMI (waga/wzrost^2) dla osób w bazie, w podziale na narodowości;
  5. Średnia i łączna ilość środków na kartach kredytowych kobiet narodowości polskiej w podziale na waluty.

Przykładowe dane JSON

{
        "_id" : ObjectId("5cb36e2734a1d11f03e2eb54"),
        "sex" : "Male",
        "first_name" : "Andrew",
        "last_name" : "White",
        "job" : "GIS Technical Architect",
        "email" : "[email protected]",
        "location" : {
                "city" : "Asbe Teferi",
                "address" : {
                        "streetname" : "Main",
                        "streetnumber" : "68"
                }
        },
        "description" : "quisque porta volutpat erat quisque erat eros viverra e
get congue eget semper rutrum nulla nunc purus",
        "height" : "151.09",
        "weight" : "75.0",
        "birth_date" : "1943-02-08T04:20:32Z",
        "nationality" : "Ethiopia",
        "credit" : [
                {
                        "type" : "visa-electron",
                        "number" : "3564204421175068",
                        "currency" : "JMD",
                        "balance" : "5863.16"
                },
                {
                        "type" : "jcb",
                        "number" : "4844028674205342",
                        "currency" : "EUR",
                        "balance" : "3167.02"
                },
                {
                        "type" : "bankcard",
                        "number" : "374622394699457",
                        "currency" : "CNY",
                        "balance" : "5214.62"
                },
                {
                        "type" : "jcb",
                        "number" : "5048373521813240",
                        "currency" : "CNY",
                        "balance" : "5545.49"
                },
                {
                        "type" : "laser",
                        "number" : "3553703520069869",
                        "currency" : "IDR",
                        "balance" : "5220.16"
                }
        ],
        "hobby" : "pingpong"
}

Jeśli chodzi o to co udało mi się zrobić to punkt 1 oraz 3 wykonałem już za pomocą aggregacji.

Będę bardzo wdzięczny za pomoc.
Pozdrawiam