subgraph
subgraph copied to clipboard
Removing entities
Removing entities can be achieved with (dissoc db (ref-to db my-entity)).
This is undocumented and it is a subtle operation, because:
- It will leave dangling refs in entities who join
my-entity - During query parsing
pullignores refs and colls of refs that do not resolve - Essentially using
pullgives the expected result, but the db is an inconsistent state.
If db-level consistency is desirable, we could maintain an index during add and remove that'd allow a fast reverse lookup on the removed ref, to the refs and attributes pointing to it:
{<ingress-ref> {<egress-ref> <from-attr>}}
This would give us a add and remove operations in time linear to the number of joins.