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
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.
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.
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)