Najlepszy samouczek MongoDB Map Reduce W 2024 r. W tym samouczku możesz dowiedzieć się komenda MapReduce,Korzystanie MapReduce,
Map-Reduce to model obliczeń, oznacza po prostu, że większość pracy (dane) rozkładu (MAP) do wykonania, a następnie scalić wyniki do wyniku końcowego (zmniejszenie).
MongoDB zapewnia Map-Reduce jest bardzo elastyczny do analizy danych na dużą skalę jest również bardzo praktyczne.
Poniżej znajduje się podstawowa składnia MapReduce:
>db.collection.mapReduce( function() {emit(key,value);}, //map 函数 function(key,values) {return reduceFunction}, //reduce 函数 { out: collection, query: document, sort: document, limit: number } )
Korzystanie z funkcji mapreduce osiągnąć te dwie funkcje mapie i obniżenia funkcji, mapa wywołanie funkcji emitują (klucz, wartość), przemierzać kolekcję we wszystkich rejestrach, a wartość klucz jest przekazywany do funkcji Reduce celu przetworzenia.
Funkcja Map musi wywołać emitują (klucz, wartość) Zwraca par.
Parametr Opis:
Rozważmy następującą strukturę dokumentu do przechowywania artykułów, dokumentów użytkownika i przechowuje pole stanu artykule nazwa_użytkownika użytkownika:
>db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "mark", "status":"active" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "mark", "status":"active" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "mark", "status":"active" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "mark", "status":"active" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "mark", "status":"disabled" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "w3big", "status":"disabled" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "w3big", "status":"disabled" }) WriteResult({ "nInserted" : 1 }) >db.posts.insert({ "post_text": "本教程,最全的技术文档。", "user_name": "w3big", "status":"active" }) WriteResult({ "nInserted" : 1 })
Teraz użyjemy stanowiska znajdujące Funkcja mapreduce wybrać opublikowany artykuł (status "aktywny"), oraz pakiet nazwa_użytkownika obliczane dla każdego użytkownika Posty:
>db.posts.mapReduce( function() { emit(this.user_name,1); }, function(key, values) {return Array.sum(values)}, { query:{status:"active"}, out:"post_total" } )
Przede mapreduce wyjście jest:
{ "result" : "post_total", "timeMillis" : 23, "counts" : { "input" : 5, "emit" : 5, "reduce" : 1, "output" : 2 }, "ok" : 1 }
Wyniki wykazały, że w sumie cztery dopasować kryteria zapytania (status: "aktywne") dokumenty generowane w czterech kluczowych funkcji mapy w dokumencie, a następnie wykorzystywać tę samą funkcję, aby zmniejszyć klucz podzielono na dwie grupy.
Określone parametry:
Korzystanie z operatorem find, aby zobaczyć wyniki zapytania mapreduce z:
>db.posts.mapReduce( function() { emit(this.user_name,1); }, function(key, values) {return Array.sum(values)}, { query:{status:"active"}, out:"post_total" } ).find()
Wyniki powyższego zapytania jest pokazany poniżej, istnieją dwa użytkowników tom i zaznaczyć dwa artykuły opublikowane:
{ "_id" : "mark", "value" : 4 } { "_id" : "w3big", "value" : 1 }
W podobny sposób, MapReduce mogą być stosowane do tworzenia dużych, zagregowanych złożonych zapytań.
Funkcje Funkcja Map i zmniejszenia mogą być realizowane z wykorzystaniem JavaScript, MapReduce skorzystać z bardzo elastyczny i potężny.