Как мне высушить мои просмотры CouchDB?

Что я могу сделать, чтобы разделить код между представлениями в CouchDB?

Example 1 -- utility methods

Джесси Халлеттимеет несколько хороших утилитарных методов, в том числе

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;
};

...

Где я могу разместить этот код, чтобы каждый вид мог получить к нему доступ?

Example 2 -- constants

Аналогично для констант я использую в своем приложении. Куда я положу

MyApp = {
  A_CONSTANT = "...";
  ANOTHER_CONSTANT = "...";
};
Example 3 -- filter of a filter:

Что, если мне нужен один просмотр, который фильтрует по "богатому человеку"?

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

и другой, который индексирует по фамилии:

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

Как я могу объединить их в «богатых людей по фамилии»? Посмотреть?

Я вроде хочу эквивалент Ruby

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

Как я могу быть сухим?

Ответы на вопрос(5)

Ваш ответ на вопрос