Hello,

Excerpts from Landry Soules's message of 2014-07-22 11:51:26 +0200:
> emit([doc.age, doc.gender, doc.lastSeen], doc);
> emit([doc.gender, doc.age, doc.lastSeen], doc);

Unless you know what you're doing, you shouldn't emit the full doc as a
value. Views are optimized that values are copied, so it means that
_all_ your docs will be copied, once per view. The trick is that at
query time, there is a special parameter you can pass to the GET [0]:

    Query Parameters:
      [...]
      include_docs (boolean) – Include the associated document with each row. 
Default is false.
      [...]

so what you should emit is something like

    emit([doc.age, doc.gender, doc.lastSeen], null);
    emit([doc.gender, doc.age, doc.lastSeen], null);

and use "&include_docs=true" when you query the view, so that you
effectively get what you initially wanted to emit without wasting space.

Regarding your question, you fall in the field of multi-dimensional
queries, which Couchdb isn't suited for. The solution generally is to
use couchdb-lucene or even elasticsearch for something like that.

[0]
http://couchdb.readthedocs.org/en/latest/api/ddoc/views.html#get--db-_design-ddoc-_view-view

-- 
Matthieu Rakotojaona

Attachment: signature.asc
Description: PGP signature

Reply via email to