mongodb: Wie man Map / reduce auf der mongodb-Shell ausprobiert

8

Ich bin neu in MongoDB, ich verwende map / reduce. Kann mir jemand sagen, wie man mit map / reduce debuggt? Ich habe die Funktion "print ()" verwendet, aber in der MongoDB-Shell wird nichts gedruckt. Folgendes ist meine Reduce-Funktion:

%Vor%

Wenn ich die obige Funktion auf die Shell schreibe und die Eingabetaste nach dem Beenden drücke, wird nichts auf die Shell gedruckt. Gibt es noch etwas, das ich zum Debuggen tun sollte?

Danke

    
Bhupi 23.09.2011, 09:48
quelle

3 Antworten

19

Es scheint, dass print() -Anweisungen in reduzierenden Funktionen in die Protokolldatei und nicht in die Shell geschrieben werden. Überprüfen Sie daher Ihre Protokolldatei auf Ihre Debug-Ausgabe.

Sie können die Protokolldatei angeben, indem Sie beim Starten des mongod-Prozesses den Parameter --logpath D:\path\to\log.txt verwenden.

    
Niels van der Rest 23.09.2011 10:42
quelle
4

Werfen Sie einen Blick auf diesen einfachen MongoDB MapReduce-Debugger, der es ermöglicht, Aggregationsergebnisse von Beispieldaten zu erhalten und die Map / Reduce / Finalize-Funktionen in Ihrer Browser-Entwicklungsumgebung Schritt für Schritt zu debuggen.

Ich hoffe, es wird nützlich sein.

Ссылка

    
user3493312 08.08.2014 17:31
quelle
3

Es gibt eine spezielle Seite auf der mongodb-Website, die Ihre Antwort ist: Ссылка

und offensichtlich ist die Reduzierung falsch: Die Zeile result.count ++ wird am Ende die Anzahl der Elemente enthalten, die in den Array-Werten enthalten sind, die (in der Abbildung Paradigmen reduzieren) nichts bedeuten. Ihre reduce-Funktion gibt nur einen "zufälligen" Hostnamen zurück (weil mapreduce algo nicht vorhersagbar ist, wenn der Inhalt in irgendeinem Schritt reduziert wird) und eine Zufallszahl.

Können Sie erklären, was Sie tun möchten? (Ich vermute, dass Sie die Anzahl von "etwas" pro Host zählen möchten)

    
kamaradclimber 23.09.2011 11:27
quelle

Tags und Links