Skip to main content

DeleteBlob

Deletes Blob objects that satisfy the specified constraints, and all the connections to/from those blob objects.

Parameters​

At least one of ref or constraints is required. When both are present, the constraints further restrict the referenced objects.

Parameter

JSON type

Behavior

constraints

array expression

Optional. No property filter; the command-specific selector requirement still applies. Filters existing objects using the constraints expression language. When ref is supplied it filters that referenced set.

ref

integer, 1 through 100000

Optional. Select using the other supplied selectors; see the selection rule above. Uses an earlier compatible Blob reference in this transaction; forward references, wrong types, and undeclared references are rejected.

Details​

If the ref parameter is used, constraints will act as additional filters on the referenced result set.

For remote blobs, the metadata is deleted but the original blobs in the remote storage are not.

Deleting objects selected by ref invalidates that reference for the remaining commands in the transaction.

A preceding Find command can select objects using more complex criteria and pass its result to the delete command through ref.

Deletion is computationally expensive; ApertureDB is optimized for workloads that perform more reads than deletes.

Response and errors​

An authenticated session with the objects delete permission is required.

The response is an object under DeleteBlob with integer status and, on success, integer count. Status 0 means the mutation completed; count is the number of selected objects affected, including zero when none match. No output blobs are returned.

Invalid field types, missing required fields, malformed expressions, and invalid references fail validation. Execution failures include a nonzero status and an info message; inspect the transaction response before assuming a mutation succeeded. Deleting nodes also removes incident connections. Managed content is scheduled for reclamation; externally referenced URL objects are not deleted.

Examples​

Delete Blobs with “unique_id” property equal to 22:

[{
"DeleteBlob": {
"constraints": ["$id", "==", 22]
}
}]

Successful response:

[{
"DeleteBlob": {
"count": 1,
"status": 0
}
}]

Delete Blobs with “unique_id” property equal to 22 and connections to entities of class “Person” with the “age” property equal to 30:

[{
"FindEntity": {
"with_class": "Person",
"_ref": 1,
"constraints": ["$age", "==", 30]
}
}, {
"FindBlob": {
"_ref": 2,
"constraints": ["$id", "==", 22],
"blobs": false,
"is_connected_to": {
"ref": 1
}
}
}, {
"DeleteBlob": {
"ref": 2
}
}]

Successful response:

[{
"FindEntity": {
"returned": 0,
"status": 0
}
}, {
"FindBlob": {
"returned": 0,
"status": 0
}
}, {
"DeleteBlob": {
"count": 1,
"status": 0
}
}]