2016-06-22 10 views
0

Ich benutze das Cloudant Knotenmodul, um meine Cloudant Datenbank zu ändern. Ich schicke die folgenden Dokumente an die db.bulk(params,callback) function.CouchDB Massenlöschung Node.js

{ docs: [ 
    { "_id": "...", 
    "_rev": "...", 
    "_deleted": true 
    }, 
    { "_id": "...", 
    "_rev": "...", 
    "_deleted": true 
    }, 
    { "_id": "...", 
    "_rev": "...", 
    "_deleted": true 
    }, 
    { ... } 
]} 

Nachdem ich diese Funktion nenne ich keine Fehler bekomme, aber wenn ich versuche, und die Datenbank abfragen später bin ich immer noch die gelöschten Dokumente zurück zu bekommen? Ich weiß, dass Cloudant "Tombstone-Dokumente" hat, also sollten sie immer noch da sein, aber ich sehe wirklich keine Tombstones. Ich sehe nur die Dokumente, die ich löschen wollte, in meiner Datenbank mit einer neuen _rev-Nummer und kehrte zurück aktiv.

Auch wenn ich versuche, die Datenbank mit einem Selektor gelöscht zu löschen: True bekomme ich nichts zurück.

Fehle ich etwas?

P. S Wenn Sie sich fragen, warum ich „_deleted“ in der Bulk-Dokument lege ich war gerade nach dem, was this site said to do.

+1

In einer Massenoperation können einige Änderungen fehlschlagen, während andere erfolgreich sind. Haben Sie die tatsächliche Antwort überprüft und nicht nur den Parameter 'err'? – OrangeDog

+0

Ja, ich tat und es gibt die _id- und _rev-Nummer für jedes Dokument zurück, was das erwartete Verhalten zum Löschen von Dokumenten gemäß der Dokumentation [auf dieser Seite] (http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API) ist. – Danwakeem

+0

Und wenn Sie sie später abfragen, haben sie die _rev, die zurückgegeben wurde, die ursprüngliche _rev oder etwas anderes? – OrangeDog

Antwort

1

In einem Bulk-Betrieb können einige Änderungen fehlschlagen, während andere Erfolg haben.

Sie müssen die tatsächliche Antwort für jedes Update überprüfen und nicht nur den Parameter err. Auch wenn errnull ist, kann es vorkommen, dass jede Aktualisierung aus einem bestimmten Grund fehlschlägt, beispielsweise ein Revisionskonflikt.