MongoDB carte de réduire avec la requête

J'ai eu un gros MongoDB que j'ai besoin d'extraire des statistiques à partir et je le fais d'acheter l'exécution d'une Carte de Réduire la requête.

Le problème est maintenant que j'en ai besoin pour affiner la requête à utiliser, par exemple, statut: "rédigé" au lieu d'utiliser l'ensemble de la collection.

C'est ma Map/reduce code (j'utilise Codeigniter):
J'ai essayé de suivre la dernière étape dans cette requête, mais je ne peux pas obtenir des résultats donc je pense que j'ai ajouter la syntaxe de mal: http://cookbook.mongodb.org/patterns/unique_items_map_reduce/.

$map = new MongoCode ("function() {
day = Date.UTC(this.created_at.getFullYear(), this.created_at.getMonth(), this.created_at.getDate());
emit ({day: day, _id: this._id}, {created_at: this.created_at, count: 1});
}");
$reduce = new MongoCode ("function( key , values ) {
var count = 0;
values.forEach (function(v) {
count += v['count'];
});
return {count: count};
}");
$outer = $this->cimongo->command (array (
"mapreduce" => "documents",   
"map"       => $map,   
"reduce"    => $reduce,  
"out"       => "stats_results"
));
$map = new MongoCode ("function() {
emit(this['_id']['day'], {count: 1});
}");
$reduce = new MongoCode ("function( key , values ) {
var count = 0;
values.forEach (function(v) {
count += v['count'];
});
return {count: count};
}");
$outer = $this->cimongo->command (array (
"mapreduce" => "stats_results",   
"map"       => $map,   
"reduce"    => $reduce,   
"out"       => "stats_results_unique"
));
  • Qu'entendez-vous par "utiliser le statut "pensées"? Voulez-vous éviter de cartographie de l'intégralité de la table, ou suffit-il seulement émettant des touches avec ce statut? Je suppose que ce que vous voulez, c'est conditionnellement émettent le résultat basé sur le champ de statut.