Even after thorough requirements engineering we end up with users wanting to attach 'notes' to their otherwise well-structured data records, in other words: arbitrary key-value pairs. Their primary interest is to find records later based on this meta data.
Example:
{
fixedattr1: 10,
fixedattr2: 11,
fixedattr3: 12,
foo: 'bar',
lol: 2
}
and
{
fixedattr1: 0,
fixedattr2: 1,
fixedattr3: 2,
baz: 'rofl'
}
could be two such records. The primary interest is to be able to
- add new key-value pairs on the fly
- find records having certain key-value pairs
Obviously this is not going to fly with relational databases. Mongodb (for instance) can handly dynamic attributes (by storing them in the same document), and in general the MEAN stack could be used to build a web app.
Let's accept this idea for a moment, then the question is: what level of support is there in MEAN to index the documents based on the dynamic attributes? Or is there another technology platform that handles this?