In couchbase, il set di risultati della vista è costruito in background. Se si dispone ad esempio di 1 milione di documenti per ciascuna dimensione 4Kb senza alcuna visualizzazione, occorrono circa 4 GB su disco. Quando si crea una vista con funzione di carta come
function(doc, meta) {
emit(doc.name, doc);
}
Di conseguenza ci vuole ulteriore 4Gb sul disco per visualizzare i risultati perché visualizzare i risultati sono memorizzate separatamente. E nella maggior parte dei casi (se si interroga la visualizzazione con il parametro Stale=Ok
) la base di utenti restituisce il risultato di tale set di record "precompilati", la base di dati non esegue la scansione di tutti i documenti su ogni query.
Pertanto, l'emmiting delle funzioni Null in map viene utilizzato per impedire l'utilizzo dello spazio su disco e aumenta inoltre la velocità del processo di indicizzazione.
Ora la seconda domanda sulla magia della base di divano quando "deriva da GetView (" birre "," birra ") sta ottenendo il valore perfettamente". Le operazioni Couchbase get(key)
e getMulti(keys)
sono molto veloci. Quindi quando si interroga la vista che emette null
restituisce non solo nulls
, inoltre restituisce gli ID dei documenti. Quindi puoi usare manualmente getMulti
per quella matrice di ID documento per ottenere il valore del documento o in alcuni SDK c'è il parametro query chiamato IncludeDocs
che farà lo stesso automaticamente.
in realtà a causa della natura javascript, è possibile chiamare solo emettere (doc.name) – avsej