Database Reference
In-Depth Information
Ein Dokument mit PUT aktualisieren
Der PUT -Befehl wird genutzt, um ein vorhandenes Dokument zu aktualisieren
oder um ein neues Dokument mit einer bestimmten _ id anzulegen. Genau
wie bei GET besteht die URL für ein PUT aus der Datenbank-URL gefolgt von
der _ id des Dokuments.
$ curl -i -X PUT \
"http://localhost:5984/music/74c7a8d2a8548c8b97da748f43000f1b" \
-H "Content-Type: application/json" \
-d '{
" _ id": "74c7a8d2a8548c8b97da748f43000f1b",
" _ rev": "1-2fe1dd1911153eb9df8460747dfe75a0",
"name": "Wings",
"albums": ["Wild Life", "Band on the Run", "London Town"]
}'
HTTP/1.1 201 Created
Server: CouchDB/1.1.1 (Erlang OTP/R14B03)
Location: http://localhost:5984/music/74c7a8d2a8548c8b97da748f43000f1b
Etag: "2-17e4ce41cd33d6a38f04a8452d5a860b"
Date: Wed, 18 Jan 2012 00:43:39 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 95
Cache-Control: must-revalidate
{
"ok":true,
"id":"74c7a8d2a8548c8b97da748f43000f1b",
"rev":"2-17e4ce41cd33d6a38f04a8452d5a860b"
}
Im Gegensatz zu MongoDB, wo Dokumente vor Ort ( in place ) modifiziert wer-
den, überschreiben Sie bei CouchDB immer das gesamte Dokument, das Sie
ändern wollen. Im Futon Web-Interface von vorhin sah es vielleicht so aus,
als würde man ein einzelnes Feld für sich aktualisieren, doch hinter den Ku-
lissen wurde beim Klick aus Save das gesamte Dokument neu geschrieben.
Wie vorhin erwähnt, müssen sowohl _ id als auch _ rev genaumitdemzuak-
tualisierenden Dokument übereinstimmen, sonst schlägt die Operation fehl.
Um zu sehen, wie, führen Sie die noch einmal die gleiche PUT -Operation aus.
HTTP/1.1 409 Conflict
Server: CouchDB/1.1.1 (Erlang OTP/R14B03)
Date: Wed, 18 Jan 2012 00:44:12 GMT
Content-Type: text/plain;charset=utf-8
Content-Length: 58
Cache-Control: must-revalidate
{ "error" : "conflict" , "reason" : "Document update conflict." }
Sie erhalten als Antwort einen HTTP 409 Conflict zusammen mit einem
JSON-Objekt, das das Problem beschreibt. Auf diese Weise stellt CouchDB
die Konsistenz sicher.
Search WWH ::




Custom Search