В заявке CouchDB documentation говорится, что мы можем вставлять документы навалом, с опцией all_or_nothing
или new_edits
, если хотим. Но, кажется, all_or_nothing
ключ не имеет каких-либо эффектов, когда мы используем так:Как использовать _bulk_docs CouchDB с опцией all_or_nothing?
HOST="http://test:[email protected]:5984/mydb"
curl -vX POST "$HOST/_bulk_docs" \
-H "Content-type: application/json" \
-d @test.json
с test.json:
{
"all_or_nothing":true,
"docs":[
{"_id":"hello"},
{"_id":"world"}
]
}
Это вставляет документы, которые имеют hello
и world
идентификаторами. Повторное выполнение скрипта путем замены hello
на hello1
должно привести к тому, что hello1
будет вставлен в базу данных, но не сработает запись документа world
(так как у него нет правильного _rev
), поэтому они оба ДОЛЖНЫ сбой, потому что мы сказали all_or_nothing
. Но в итоге в базе данных есть 3 документа: hello
, hello1
и world
.
Как использовать all_or_nothing
с CouchDB?