Dans mongodb, certaines valeurs de mapReduce ne sont pas traitées par réduire.
大家讲道理
大家讲道理 2017-05-17 10:04:04
0
1
633

Lors de l'utilisation de mapReduce dans mongodb, certaines valeurs ne sont pas traitées par réduire, ce qui est très déroutant. Codez d’abord

    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"
        }
    )

Les données qui doivent être sorties sont

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

Les données de sortie réelles sont

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

Je suis très confus. Lorsque la clé de l'émission de condition est inférieure à 4, elle s'affichera normalement si elle est supérieure à 3 ou si une condition de requête est ajoutée, le traitement de réduction ne sera pas effectué.

Une autre question est, lorsque mapReduce a une requête, doit-il d'abord traiter la requête ou traiter la réduction, puis traiter la requête dans le résultat

大家讲道理
大家讲道理

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

répondre à tous(1)
大家讲道理

Il est recommandé d'utiliser l'agrégation. Par rapport au MR, l'agrégation est la fonctionnalité de première classe de MongoDB.

Pour référence.

J'adore MongoDB ! Amusez-vous!

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal