Database Reference
In-Depth Information
CouchDB die Operation ab. Auf diese Weise werden Konflikte vermieden -
indem sichergestellt wird, dass nur die aktuellen Dokumenten-Revisionen
modifiziert werden.
Es gibt keine Transaktionen und kein Locking bei CouchDB. Um einen vor-
handenen Datensatz zu modifizieren, lesen Sie ihn zuerst ein und notie-
ren
_
id
und
_
rev
. Dann fordern Sie ein Update an und übergeben dabei
das gesamte Dokument samt
_
id
und
_
rev
. Für alle Operationen gilt: Wer
zuerst kommt, mahlt zuerst. Indem es eine passende
_
rev
verlangt, stellt
CouchDB sicher, dass das Dokument, das Sie ändern wollen, nicht hinter
Ihrem Rücken verändert wurde.
In der geöffneten Dokumentenseite klicken Sie auf den Add-Field-Button. In
der Field-Spalte geben Sie
name
ein und in der Value-Spalte
The Beatles
.
Klicken Sie das grüne Häkchen an und dann den Save-Document-Button.
Beachten Sie, dass das
_
rev
-Feld jetzt mit
2
beginnt.
CouchDB ist nicht auf das Speichern von Strings beschränkt. Es kann JSON-
Strukturen beliebiger Tiefe speichern. Klicken Sie erneut den Add-Field-But-
ton an. Dieses Mal setzen Sie Field auf
albums
und als Value geben Sie die
folgende (nicht vollständige Liste) ein:
[
"Help!"
,
"Sgt. Pepper's Lonely Hearts Club Band"
,
"Abbey Road"
]
Nachdem Sie Save Document angeklickt haben, sollte es so aussehen wie in
Abbildung 26,
CouchDB Futon: Dokument mit Array-Wert
, auf Seite 198.
Zu einem Album gibt es neben dem Namen noch weitere Informationen fest-
zuhalten, also wollen wir sie hinzufügen. Modifizieren Sie das
albums
-Feld
und ersetzen Sie den gerade gesetzten Wert durch Folgendes:
[{
"title"
:
"Help!"
,
"year"
: 1965
},{
"title"
:
"Sgt. Pepper's Lonely Hearts Club Band"
,
"year"
: 1967
},{
"title"
:
"Abbey Road"
,
"year"
: 1969
}]
Nachdem Sie das Dokument gespeichert haben, sollten Sie im
albums
-Wert
die verschachtelten Dokumente sehen können. Das sollte so aussehen wie