2014-05-10 2 views

Antwort

5

Nein, die Ansichten sind nicht regeneriert solange die Views-Eigenschaft selbst nicht geändert wird. CouchDB berechnet einen Hashwert über die views-Eigenschaft des Entwurfsdokuments und verwendet diesen Hash als Dateinamen der Ansicht.

Wir verwenden diese Funktion häufig in der Produktion: Wir aktualisieren regelmäßig unsere Konstruktionsdokumente, und solange sich die Ansichten nicht ändern, werden die Ansichten nicht neu generiert.

BTW: Dies ist auch der Grund, warum Sie CommonJS-Module und require() in Ansichten verwenden können, aber Sie sind auf Pfade innerhalb views beschränkt. Sie können beispielsweise Folgendes tun:

{ 
    ... 
    "views": { 
    "lib": { 
     "underscore": "... (underscore.js here)" 
    }, 
    "my_view": { 
     "map": "function (doc) { var _ = require('views/lib/underscore'); emit(doc._id, _.pick(doc, 'name', 'address'); }" 
    } 
    } 
} 

Aber man kann nicht eine require wie folgt verwenden: var _ = require('underscore');

hoffe, das hilft!

3

Ja. Wie in View API ("Altering/Changing Views" section) in Wiki dokumentiert:

Um eine Ansicht oder mehrere Ansicht zu ändern, nur das Design-Dokument ändern (siehe HttpDocumentApi) sie in gespeichert sind, und sie als neue Überarbeitung speichern. Dies führt dazu, dass alle Ansichten in diesem Entwurfsdokument beim nächsten Zugriff neu erstellt werden, falls der Ansichtscode geändert wurde.

Beachten Sie, dass sich die Dokumentation auf die Aktualisierung des Entwurfsdokuments und nicht auf seine Felder bezieht.

Verwandte Themen