У меня есть следующий запрос:
view.reduce.group_level(5).keys
, который возвращает:
[["1f9c79a33f399a7937d880c5f31e8dbc", 2011, 12, 29, 13], ["1f9c79a33f399a7937d880c5f31e8dbc", 2011, 12, 29, 14], ["c38332ffc275b6c70bcf06ffc39ddbdd", 2011, 12, 29, 13], ["c38332ffc275b6c70bcf06ffc39ddbdd", 2011, 12, 29, 14]]
Первый ключ - это идентификатор, а остальные ключи - год, месяц, день, час
Я бы хотел, чтобы все строки были между 2010 и 2013 годами. Поэтому я хочу игнорировать первый ключ.
Проблема в том, что мне нужно установить первый параметр, чтобы получить результаты, но я хочу получитьвсе результаты для всех ключей.
например: view.reduce.group_level(5).startkey(["every_possible_key", 2010]).endkey(['every_possible_key", 2013, {}])
Если я оставлю первый ключ пустым, то ничего не получу.Если я дам ему «\ u9999», тогда я получу все, и он проигнорирует 2-й ключ.
Кто-то знает, что я делаю неправильно?:
function(d) {
if (d['type'] == 'State' && d['driver_id'] && d['name'] && d['created_at']) {
var dt = new Date(d.created_at);
emit([d.driver_id, dt.getFullYear(), dt.getMonth() + 1, dt.getDate(), dt.getHours()], d.name);
}
}
уменьшить:
function(k,v,r) {
var result = {
'hire': 0, 'hired': 0, 'arrived': 0, 'pick up': 0, 'drop off': 0,
'missed': 0, 'rider cancel': 0, 'driver cancel': 0, 'no show': 0,
'avail': 0, 'unavail': 0, 'other': 0
};
if (r) {
var row = null;
for (i in v) {
row = v[i];
for (j in row) {
result[j] += row[j];
}
}
} else {
for (i in v) {
if (result[v[i]] != null) {
result[v[i]] += 1;
} else {
result['other'] += 1;
}
}
}
return result;
}