Hi devs,
Would it be possible to allow a _prefix parameter to be given when
creating a new document, which would be used for auto-generating an _id?
The reason I ask is that it's much harder to create a unique
descriptive id in an application than in a database.
In my application I have to create sessions in response to user
queries, and I can't generate a reasonably compact _id that's
guaranteed to be unique, at least not easily. If I could just give
CouchDB a _prefix instead of an _id, CouchDB could generate a
descriptive, compact, guaranteed unique _id for me instead.
E.g. I could create an _id as follows:
$ perl -e 'print "session_".crypt(join("",POSIX::uname).$
$.time,"42")."\n"'
session_42/xjrVvFTocQ
This seems ok at first but then it turns out that crypt only uses the
first 8 characters and this therefore always gives the same result. So
I have to use MD5, which means another module or at least imported
functions etc.
OR, I could simply add "_prefix":"session_" to the JSON and CouchDB
would return something like
session_91a92205f9e6df704fdcca5968a3cdfb for the _id. No extra code
from me, guaranteed unique, easy to remember.
Is this a convincing use case? :-D
I think that a prefix+unique suffix allows you to have a natural key
for lists of data. When you see that UUID referenced somewhere else,
just like a natural key, you immediately understand the function of
that reference.
Thanks,
Wout.