Wie trockne ich meine CouchDB-Ansichten?

Wie kann ich Code für Ansichten in CouchDB freigeben?

Beispiel 1 - Dienstprogrammmethoden

Jesse Halletthat einige gute Utility-Methoden, einschließlich

function dot(attr) {
  return function(obj) {
      return obj[attr];
  }
}

Array.prototype.map = function(func) {
  var i, r = [],
  for (i = 0; i < this.length; i += 1) {
    r[i] = func(this[i]);
  }
  return r;
};

...

Wo kann ich diesen Code ablegen, damit jede Ansicht darauf zugreifen kann?

Beispiel 2 - Konstanten

Ähnliches gilt für Konstanten, die ich in meiner Anwendung verwende. Wo lege ich

MyApp = {
  A_CONSTANT = "...";
  ANOTHER_CONSTANT = "...";
};
Beispiel 3 - Filter eines Filters:

Was ist, wenn ich eine Ansicht möchte, die nach "Ist das eine reiche Person?" Filtert:

function(doc) {
  if (doc.type == 'person' && doc.net_worth > 1000000) {
    emit(doc.id, doc);
  }
}

und eine andere, die nach Nachnamen indiziert:

function(doc) {
  if (doc.last_name) {
    emit(doc.last_name, doc);
  }
}

Wie kann ich sie in einer Ansicht "Reiche nach Nachnamen" kombinieren?

Ich möchte sozusagen das Äquivalent des Rubins

my_array.select { |x| x.person? }.select { |x| x.net_worth > 1,000,000 }.map { |x| [x.last_name, x] }

Wie kann ich TROCKNER sein?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage