recherche

Maison  >  Questions et réponses  >  le corps du texte

Dans mongodb, certaines valeurs de mapReduce ne sont pas traitées par réduire.

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

大家讲道理大家讲道理2742 Il y a quelques jours610

répondre à tous(1)je répondrai

  • 大家讲道理

    大家讲道理2017-05-17 10:06:04

    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!

    répondre
    0
  • Annulerrépondre