On Tue, Dec 3, 2013 at 10:35 AM, Volker Mische <volker.mis...@gmail.com> wrote:
> I personally would prefer to have the meta information completely
> separate from the document. I know there have been discussion in the
> past to even have them separate in the backend (but that's not the point
> of this proposal).
>
> So the API for the view function could change to `function(doc, meta)`.
> This way you could store in your document whatever you like.

This is convenient in some cases but I really do like how CouchDB
documents are self-contained and self-representing. Having to rely on
an outside context to know things like identity and revision seems
unfortunate.

Most cases I've interacted with CouchDB would require at least that
minimal _id and _rev. Separating them might seem okay if you just look
at a map function with two arguments but it gets messier if you look
at client code in the applications that use CouchDB. Many do things
like:

    my_doc = db.get('doc')
    ...
    db.put(my_doc)

Juggling this context separately will require extra work or at least
force CouchDB clients to reinvent some way to wrap up and store
metadata. My experience writing client code against Riak, which
externalizes this metadata, was not nearly as clean as working with
CouchDB since everything needed some sort of wrapper where CouchDB
could many times get away with just a simple value.

On the side of internals, there is certainly some work to be done to
lift things in and out of this special field, but it could be done w/o
forcing clients to live with their world split in two.

Brian.

Reply via email to