我想刪除foo
等於x的所有文檔。看起來像一個非常基本的操作,但我無法弄清楚。如何刪除CouchDB中的多個文檔?
我知道如何刪除單個文檔,但這還不夠好 - 我可能不得不每次刪除幾千個文檔。
如何批量刪除CouchDB中的文檔?
我想刪除foo
等於x的所有文檔。看起來像一個非常基本的操作,但我無法弄清楚。如何刪除CouchDB中的多個文檔?
我知道如何刪除單個文檔,但這還不夠好 - 我可能不得不每次刪除幾千個文檔。
如何批量刪除CouchDB中的文檔?
我不知道這是否正確,但可以提供一個視圖,顯示foo
字段,查詢您要刪除的所有文檔的視圖,並對所有文檔進行批量更新。所以兩個(理想)呼叫沙發。
http://comments.gmane.org/gmane.comp.db.couchdb.user/11222
也有類似的方式去做。
請在所有要按照Bulk deletion of documents
我嘗試了一個有點長的方法來刪除文件。我首先創建了一個名爲map_fun的視圖,該視圖調用了我想要刪除的文檔。然後,我通過視圖迭代和存儲ALLT他文件的密鑰和用於德爾DB [「_身份證」]刪除這些
map_fun = '''function(doc){
if (doc.doc_type == 'classic'){
emit(doc._id, doc)
}}'''
deldoclist = []
for row in db.query(map_fun):
deldoclist.append(row.key)
for item in deldoclist:
del db[item]
這是一個與批量刪除很簡單:https://wiki.apache.org/couchdb/HTTP_Bulk_Document_API 張貼至_all_docs JSONs列表看起來像:
{"_id": "0", "_rev": "1-62657917", "_deleted": true}
不,這個問題沒有回答我想要的東西就像'DELETE FROM t WHERE foo = 10'。使用批量操作,我會仍然必須打兩個電話,而不是一個。 –
OK,所以根據你的鏈接,我已經在此期間讀一些其他物品,似乎是在做一個單步批量刪除(或更新)是不可能的。自稱爲「數據庫」的東西似乎沒有這個特性,但至少現在我知道以最低效率的方式獲得我想要的東西,這似乎很讓人震驚。感謝您的信息。 –
這是真的。 「數據庫」的定義正在發生變化。人們過去稱memcache爲「緩存」,現在它被認爲是「內存數據庫」。我同意這令人不安。但另一方面,舊的定義確實意味着「SQL數據庫」也是不正確的。 – JasonSmith
真的很傷心有沒有更方便的方法......'( –