我尝试在Cloudant上将all_or_nothing
设置为true
时更新原子批量文档,但得到以下响应:
[{"id":"7b75974f73c4230047b96b5272b696fd","rev":"1-e9b78ecba4c4ac29a9743cd001219eae","error":"not_implemented","reason":"all_or_nothing is not supported yet"},
{"id":"921faa913230839614a4feb19d5c39ec","rev":"0-","error":"not_implemented","reason":"all_or_nothing is not supported yet"}]
我跟着CouchDB documentation因为Cloudant是CouchDB的一个分支,并且对于大多数用途来说它似乎是兼容的。不是在这种情况下。
所以我调查Cloudant documentation,确实根本没有提到all_or_nothing
标志。 Moving Apache CouchDB Data
to Cloudant白皮书中也没有提到它。
现在我想知道.. 是否按设计(如果数据以正确的NoSQL方式建模,可能不需要它?是否有适用于此处的最佳实践?)或者它是< strong>只是缺少功能?
答案 0 :(得分:5)
Cloudant不支持Expected to see a statement but instead saw a block
标志。当CouchDB分叉并成为BigCouch时它被删除了。由于数据库是分片的并存储在不同的计算机上,因此在分布式系统中提供all_or_nothing
保证会过于复杂,您的_bulk_docs请求最终会写入单独的分片。
我发现即将从即将推出的CouchDB 2.0中删除它也不会感到惊讶。