What you'll achieve By the end of this guide, you will know how to delete documents using WOQL queries.
Prerequisites: TerminusDB running on
localhost:6363with the Star Wars dataset cloned. If you haven't done this yet, follow the Explore a Real Dataset tutorial (Steps 1–2), or run:curl -u admin:root -X POST http://localhost:6363/api/clone/admin/star-wars \ -H "Content-Type: application/json" \ -H "Authorization-Remote: Basic cHVibGljOnB1YmxpYw==" \ -d '{"remote_url": "https://data.terminusdb.org/public/star-wars", "label": "Star Wars", "comment": "Star Wars dataset"}'
Delete a document in WOQL
Deleting a document in WOQL is possible using the delete_document keyword.
First, let's insert a document.
Example: JavaScript
let v = Vars("id");
insert_document(doc({'@type' : 'Planet', label: 'Planet-X'}), v.id)Supposing we get back the following:
Example: JSON
"Planet/01dd97a75800f01f43ab7ab55b6dd08f198dd34d2bdbbeeb7bf4edee45111863"Now we can delete it with the following:
Example: JavaScript
delete_document("Planet/01dd97a75800f01f43ab7ab55b6dd08f198dd34d2bdbbeeb7bf4edee45111863")Delete a subdocument in WOQL
Subdocuments can be deleted using the delete_document keyword, but it's important to also delete the triple that links the subdocument from the parent document. Here we resolve the parent document in the variable v:parentdoc.
Example: JavaScript
and(
eq("v:subdoc", "Person/John/role/PersonRole/cxW1Egirxm8-QYrq"),
triple("v:parentdoc", "role", "v:subdoc"),
delete_document("v:subdoc"),
delete_triple("v:parentdoc", "role", "v:subdoc"),
)