Основываясь на отличном ответе на мой previous question, я частично решил проблему, с которой я сталкиваюсь с CouchDB.CouchDB Просмотры: удалить дубликаты * и * упорядочить по времени
В результате получилось a new view.
Теперь, следующее, что мне нужно сделать, это удалить дубликаты из этого представления пока заказывая по дате.
Например, вот как я мог бы запросить эту точку зрения:
GET http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following?endkey=[%22c988a29740241c7d20fc7974be05ec54%22]&startkey=[%22c988a29740241c7d20fc7974be05ec54%22,{}]&descending=true&limit=3
Итоговое в этом:
HTTP 200 http://scoates-test.couchone.com/follow/_design/asset/_view/by_userid_following
http://scoates-test.couchone.com > $_.json.rows
[ { id: 'c988a29740241c7d20fc7974be067295'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T17:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be062ee8'
, owner: 'c988a29740241c7d20fc7974be05f67d'
}
}
, { id: 'c988a29740241c7d20fc7974be068278'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T15:00:00.000Z'
, 'durian'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be065115'
, owner: 'c988a29740241c7d20fc7974be060bb4'
}
}
, { id: 'c988a29740241c7d20fc7974be068026'
, key:
[ 'c988a29740241c7d20fc7974be05ec54'
, '2010-11-26T14:00:00.000Z'
, 'clementine'
]
, value:
{ _id: 'c988a29740241c7d20fc7974be063b6d'
, owner: 'c988a29740241c7d20fc7974be05ff71'
}
}
]
Как вы можете видеть, "Клементина" показывает дважды.
Если я изменил представление, чтобы исправить имя плода/имущества в качестве второго ключа (вместо времени), я могу изменить глубину группировки, чтобы свернуть их, но это не решает мои требования к порядку по времени , Аналогично, с указанной выше настройкой я могу упорядочить по времени, но я не могу свернуть дублированные имена активов в отдельные строки (чтобы разрешить, например, 10 активов на странице).
К сожалению, это не простой вопрос для объяснения. Может быть, this chat transcript поможет немного.
Пожалуйста, помогите. Боюсь, что мне нужно сделать все еще не возможно.
S
Hi. Я попробовал ваше сокращение, и я не думаю, что он решил мою проблему: http: // scoates-test.couchone.com/_utils/database.html?follow/_design/asset/_view/by_userid_following_reduce (несмотря на сокращение, я все равно получаю «банан» дважды за «c988a29740241c7d20fc7974be060bb4»). Я использовал его неправильно? – scoates 2010-11-29 14:38:38
Извините, мой первый пример неправильный. Он работает только для повторяющихся значений. Для ключей вам нужно использовать списки. Я изменил пример. Надеюсь, он решает вашу проблему. – Nek 2010-11-29 19:41:15