In CouchBase wird das Ergebnisset von usally view im Hintergrund erstellt. Wenn Sie zum Beispiel 1 Million Dokumente jeder Größe 4 KB ohne Ansichten haben, dauert es ~ 4 GB auf der Festplatte. Wenn Sie eine Ansicht mit Kartenfunktion wie
function(doc, meta) {
emit(doc.name, doc);
}
Als Ergebnis schaffen nehmen sie zusätzliche 4 GB auf der Festplatte für die Darstellung von Ergebnissen, da Ansicht Ergebnisse separat gespeichert werden. Und in den meisten Fällen (wenn Sie die Ansicht mit Parameter Stale=Ok
abfragen) gibt couchbase das Ergebnis aus dem "vorkompilierten" Datensatz zurück, couchbase scannt nicht alle Dokumente zu jeder Abfrage.
Das Emittieren von Null in Kartenfunktionen wird verwendet, um die Speicherplatznutzung zu verhindern, und es erhöht auch die Geschwindigkeit des Indizierungsprozesses.
Jetzt die zweite Frage über couchbase Magie, wenn "Ergebnis von GetView (" Bier "," Bier ") den Wert perfekt bekommt". Couchbase get(key)
und getMulti(keys)
Operationen sind sehr schnell. Wenn Sie also die Ansicht abfragen, die null
ausgibt, gibt sie nicht nur nulls
zurück, sondern auch Dokument-IDs. Dann können Sie manuell getMulti
für dieses Array von Dokument-IDs verwenden, um den Wert von Doc zu erhalten, oder in einigen SDKs gibt es den Abfrageparameter IncludeDocs
, der das selbe automatisch macht.
eigentlich wegen Javascript Natur, können Sie nur emittieren (doc.name) – avsej