In Mongodb werden einige Werte in MapReduce nicht durch Reduce verarbeitet.
大家讲道理
大家讲道理 2017-05-17 10:04:04
0
1
609

Bei Verwendung von MapReduce in Mongodb werden einige Werte nicht durch Reduzieren verarbeitet, was sehr verwirrend ist. Zuerst codieren

    db.test.mapReduce(
        function () {
            emit({
                host: this.host,
                os: this.os,
                computed_on_date: this.computed_on_date,
                uid: this.uid
            }, {data: this.os});
        },
        function (key, value) {
            return {result: 1};
        },
        {
            out: "a"
        }
    )

Die Daten, die ausgegeben werden sollen, sind

        "_id" : {
                "host" : "www.ddc.com",
                "os" : "android",
                "computed_on_date" : "2017-04-19",
                "uid" : "0ae71c7\ne-7da6-9051-ec6c-49dc671b4e3a"
        },
        "value" : {
                "result" : 1
        }

Die tatsächlichen Ausgabedaten sind

      "_id" : {
                "host" : "www.ddc.com",
                "os" : "android",
                "computed_on_date" : "2017-04-19",
                "uid" : "0ae71c7\ne-7da6-9051-ec6c-49dc671b4e3a"
        },
        "value" : {
                "data" : "android"
        }

Ich bin sehr verwirrt. Wenn der Schlüssel der Bedingung kleiner als 4 ist, wird er normal angezeigt. Wenn er größer als 3 ist oder eine Abfragebedingung hinzugefügt wird, wird keine Reduzierungsverarbeitung durchgeführt.

Eine weitere Frage ist: Wenn mapReduce eine Abfrage hat, sollte es zuerst die Abfrage oder die Reduzierung verarbeiten und dann die Abfrage im Ergebnis verarbeiten

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(1)
大家讲道理

建议使用aggregation来做。与MR比较,aggregation是MongoDB的first class的特性。

供参考。

Love MongoDB!Have fun!

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage