2010-05-01 18 views
10

Nella documentazione di CouchDb, il metodo descritto per eliminare allegati di documenti è inviare una chiamata DELETE all'URL dell'allegato.Eliminazione di allegati di documenti in CouchDb

Tuttavia, ho notato che se si modifica il documento e si rimuove lo stub dell'allegato dal campo _attachment, non sarà più accessibile.

Se rimuovo foo.txt dal documento qui sotto e salvare in CouchDB sarà andato la prossima volta che accedere al documento:

{ 
    "_id":"attachment_doc", 
    "_rev":1589456116, 
    "_attachments": 
    { 
    "foo.txt": 
    { 
     "stub":true, 
     "content_type":"text/plain", 
     "length":29 
    } 
    } 
} 

è l'attaccamento effettivamente cancellato su disco o è solo il riferimento alla è cancellato?

risposta

11

I due metodi sono identici.

Indipendentemente dal fatto che si sia DELETE l'URL allegato o si rimuova lo stub dal documento, i dati sono contrassegnati come cancellati utilizzando il sistema MVCC interno. Potresti dire che il riferimento ad esso è cancellato.

Tuttavia, quando si esegue la compattazione, l'allegato verrà eliminato sul disco.

Problemi correlati