2012-11-14 7 views
5

Je viens de suivre ce post pour tester Couchbase View.Lors de l'affichage d'édition utiliser l'interface graphique de Couchbase et enregistrer, la vue n'a pas mis à jour immédiatement.Couchbase Voir pas mettre à jour immédiatement?

Pour example.With scripts php stocker une matrice pour Couchbase.And définir un nom 'dernier' vue dans le document 'dev_sessions de:

function (doc) { 
if(doc.namespace == 'sessions') { 
emit(doc.lastSeen, 1); 
} 
} 

Ensuite, utilisez une boucle pour obtenir le résultat JSON. Première:

$ curl 
http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ ] } 

Deuxième:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352872218,"value":1}, 
{"key":1352879418,"value":3} 
] 
} 

Un autre test, ajoutez un nouveau tableau dans les scripts php:

'eb255262434407766f212d1b6f23' => array(
'namespace' => 'sessions', 
"type" => "user", 
"userID" => "1107", 
'lastSeen' => time(), 
'firstSeen' => time(), 
"remoteAddress" => "2.3.4.5", 
"location" => "Vienna/Austria", 
"name" => "Golden K" 

Run se courbent à nouveau, la première fois:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352872218,"value":1}, 
{"key":1352879418,"value":3} 
] 
} 

Deuxième fois:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352875163,"value":1}, 
{"key":1352882363,"value":4} 
] 
} 

Si les données modifiées ou script de vue, cliquez sur le bouton dans l'interface graphique Views - 'Show Results' Couchbase, la première & deuxième fois différent-t. Pourquoi ne pas mettre à jour immédiatement?

+0

Si les données modifiées ou script de vue, seule la première fois obtenir le résultat d'une vue est pas mis à jour .Après la deuxième fois, cette vue et toutes les autres vues seront mises à jour. Le résultat est corrent. – user1815744

Répondre

12

C'est le comportement attendu. Couchbase est par défaut "mise à jour" de l'index après l'appel de la vue. Et ceci pour avoir un temps de réponse plus rapide.

Lors de l'exécution d'une vue, vous pouvez contrôler l'état de la vue (en fait son index) à l'aide du paramètre périmé.

Dans votre cas, faire juste un:

curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true&stale=false' 

Et il mettra à jour l'index avant de retourner les données à votre application.

Vous trouverez dans la documentation toutes les informations sur ce paramètre et comment les vues travaillent:

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-stale.html

+0

THX.Il est clair.BTW, le bloc de spam de Couchbase Forums est trop strict pour IP asiatique.J'ai déjà changé trois adresses IP, de la Chine à HK, mais je ne peux toujours pas soumettre un nouveau message.%> _ <% – user1815744

+0

lié à l'adresse IP, mais probablement en raison du nombre de liens que vous avez mis dans votre message. Je vais le signaler au responsable de la communauté Couchbase –

Questions connexes