Table.checkAndDelete()
Deletes a document, if that document satisfies the conditions that are specified in a
QueryCondition
object.
Operations Performed
- Verifies that the document with the specified ID exists.
- If the ID does not exist, returns false.
- If the ID does exist, proceeds to step 2.
- Evaluates the specified condition on the document.
- If the evaluation returns false, returns false.
- If the evaluation returns true, deletes the document.
Example Document and Code
- Document
-
{ "_id" : "movie0000001", "title" : "OJAI -- The Documentary", "studio" : "MapR Technologies, Inc.", "release_date" : "2015-09-29", "trailers" : { "teaser" : "https://10.10.21.90/trailers/teaser", "theatrical" : "https://10.10.21.90/trailers/theatrical" }, "characters" : [ "Heroic Developer", "Evil Release Manager", "Mad Development Manager" ], "box_office_gross" : 1000000000L }
- Code
-
public QueryCondition buildQueryCondition() { return MapRDB.newCondition() .and() .is("studio", Op.EQUAL, "MapR Technologies, Inc.", .is("release_date", Op.GREATER_OR_EQUAL, Values.parseDate("2015-01-01")) .is("release_date", Op.LESS_OR_EQUAL, Values.parseDate("2015-12-31")) .close() .build(); } public Document buildDocument() { return MapRDB.newDocument() .setId("movie0000001") .set("title", "OJAI -- The Documentary") .set("studio", "MapR Technologies, Inc.") .set("release_date", Values.parseDate("2015-09-29")) .set("trailers.teaser", "https://10.10.21.90/trailers/teaser") .set("trailers.theatrical", "https://10.10.21.90/trailers/theatrical") .setArray("characters", ImmutableList.of("Heroic Developer", "Evil Release Manager", "Mad Development Manager")) .set("box_office_gross", 1000000000L); } public void replaceIfTrue(String tablePath, QueryCondition condition, String _id) { try(Table table = MapRDB.getTable(tablePath)) { if (table.checkAndDelete(_id, condition)) { System.out.println("Condition matched, delete succeeded"); } else { System.out.println("Condition did not match, delete failed"); } } }
Parameter Description _id
The value of the document's _id
field.condition
The query condition to evaluate on the row.
Permissions Required
- The
readAce
andwriteAce
permissions on the volumes where the JSON tables that contain the documents are located. For information about how to set permissions on volumes, see Setting/Modifying Whole Volume ACEs. readperm
andwriteperm
on the column families in the row.