2012-11-14 16 views
5

Ho appena seguito questo post per testare Couchbase View.When edit view usa Couchbase GUI e salva, la vista non si aggiornava immediatamente.Couchbase Visualizza non si aggiorna immediatamente?

per gli script PHP example.With memorizzare alcune serie di Couchbase.And definire un 'ultima' vista con nome nel documento '' dev_sessions:

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

Poi usare curl per ottenere il risultato JSON. La prima volta:

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

Secondo:

$ 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 altro test, aggiungere un nuovo array di script 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 arricciatura della volta, la prima volta:

$ 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} 
] 
} 

Seconda volta:

$ 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} 
] 
} 

Se i dati modificati o vista script, fare clic Views - 'Show Results' pulsante nella Couchbase GUI, la prima & seconda volta lo fa diverso. Perché la vista non si aggiorna immediatamente?

+0

Se i dati modificati o visualizzare lo script, solo la prima volta ottenere il risultato da un punto di vista non è aggiornare .Dopo la seconda esecuzione, questa vista e tutte le altre visualizzazioni aggiorneranno la sincronizzazione. Il risultato è corretto. – user1815744

risposta

12

Questo è il comportamento previsto. Couchbase è di default "aggiornando" l'indice dopo la chiamata della vista. E questo per avere tempi di risposta più rapidi.

Durante l'esecuzione di una vista è possibile controllare lo stato della vista (in effetti il ​​suo indice) utilizzando il parametro stante.

Nel tuo caso basta fare un:

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

e si aggiorna l'indice prima di tornare i dati per l'applicazione.

Si possono trovare nella documentazione di tutte le informazioni su questo parametro e come i punti di vista stanno lavorando:

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

+0

THX.E 'chiaro.BTW, il blocco spam di Couchbase Forums è troppo rigido per IP asiatico. Ho già cambiato tre IP, dalla Cina a HK, ma non posso ancora inviare un nuovo post.%> _ <% – user1815744

+0

Non sono sicuro che relativo all'indirizzo IP ma probabilmente a causa del numero di link che hai inserito nel tuo messaggio. Lo raccolgo al responsabile della community di Couchbase –

Problemi correlati