Collection Spec
A _collection/spec
is set of smart functions that are attached to a particular collection. Any time that collection appears in a transaction, regardless of who issues the transaction, the smart functions attached to the _collection/spec
will execute.
If all of the smart functions return true
, the transaction will succeed. If any of the smart functions return false
, it will fail.
#
UsesThe most common use for collection specs to make sure a certain predicate is included in a collection. For example, the below spec, the function makes sure person/fullName
is required.
[ { "_id": ["_collection/name", "person"], "spec": ["_fn$fullNameReq"], "specDoc": "A person is required to have a fullName." }, { "_id": "_fn$fullNameReq", "name": "fullNameReq", "code": "(boolean (get (query (str \"{\\\"select\\\": [\\\"*\\\"], \\\"from\\\":\" (?sid) \"}\")) \"person/fullName\"))" }]