Maison > Questions et réponses > le corps du texte
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
大家讲道理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!