Hi, is there a way to express in datascript\datomic: retract all entities that satisfy some predicate? or the way is query all relevant id using q and then retract?
The latter
I'm guessing it's more relevant to datomic but since we're on the topic: is that mean I can't transact a change that is dependant on some predicate, say: decrease only if availability is > 0?
You can, there are transaction functions. They have to be installed first, if I remember correctly
thanks! I'll read more about it. is there any parallel for datascript?
Yes, but itโs a little more relaxed, since DataScript is always local. So you can just pass fn reference https://github.com/tonsky/datascript/blob/78fdf8ac2666ff013a60460085c64d32f9573d00/test/datascript/test/transact.cljc#L226-L249
You can call them right away with :db.fn/call https://github.com/tonsky/datascript/blob/a6127c4886c93b2c43584fdf57daaeb97cbf86f6/test/datascript/test/transact.cljc#L220
๐