les résultats de la vue Couchbase diffèrent réduire la fonction

voix
1
function (doc) {
  if(doc.jsonType == 'cart') {
    if((Date.parse(doc.updated_at) + (15 * 60000)) >= Date.now()) {
      for(item in doc.items) {
        emit(item, doc.items[item].quantity);
      }
    }
  }
}

Avec cette fonction, je reçois les documents qui ont été mis à jour au cours des 15 dernières minutes, par exemple 2, avec la quantité 1 et 2, ce qui devrait donner lieu à 3 comme une somme. Cependant, lorsque j'utilise le haut-fonction réduire _sum, je reçois 32 (somme de toutes les lignes existantes).

Je mis à jour les vues plusieurs fois, mais ne reçoivent toujours pas les résultats corrects.

Qu'est-ce qui ne va pas?

Créé 18/05/2012 à 12:42
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Il est faux de l'utilisation de Date.now()la carte (et réduire) fonctions. Cartes / réduire les résultats sont enregistrés sur le disque pour une récupération rapide au moment de la requête. La valeur de Date.now()vous, est que quand la carte a été construite, pas quand il est interrogé. Vous pouvez trouver un matériel d' introduction sur la façon dont les cartes de CochDB fonctionnent sur le wiki et le Guide définitif .

Créé 19/05/2012 à 07:18
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more