Frames - http://acowley.github.io/Frames/ - is built on top of vinyl and provides one way to access data either as an array of structures or a structures of arrays. I'm on my phone (hence the use of top posting) so I can't productively check whether it allows the kind of filtering you were asking for.

Doug

On Fri, Aug 12, 2016, 01:18 Anthony Clayden <anthony_clayden@clear.net.nz> wrote:
> I don't know if they're at all suitable for your purposes,
> but you should look (at least for inspiration) at both
> vinyl and dependent-map.

Thanks David,

vinyl is a record 'solution', not a set-of-records
repository