2012-03-10 5 views
0

Я новичок в CouchDB, и я пытаюсь получить последние 50 последних записей пользователя в приложении. Я создал представление, которое вытаскивает документы для записей, и я могу использовать ключевой параметр, чтобы получить только документы конкретного пользователя и лимитный запрос, чтобы получить только 50 записей.couchdb get by value, limit и order by time

Однако я хотел бы заказать документы с помощью поля «timestamp» (которое хранит новую дату(). GetTime(), когда была сделана запись), чтобы гарантировать, что я получаю только последние записей. Возможно ли это в CouchDB, и если да, то как?

ответ

1

Возможно, вы, возможно, достигнете этого (по крайней мере, в том случае, если у вас нет данных о будущих датах в ваших данных), испустив более сложный ключ, такой как массив формы [имя пользователя, дата и время]. Затем сделайте вид, который вытаскивает документы с помощью клавиши запуска, например, ['johndoe', 1331388874195] с убывающим порядком и ограничивает 50. Дата должна быть, очевидно, текущей. CockDB collation будет следить за тем, чтобы результаты были сначала заказаны пользователем, а затем по дате.

+0

спасибо! который работал красиво :) Я не знал, что вы можете использовать массив как ключ, очень полезный для изучения! еще раз, спасибо !! –

+0

oops, заметили небольшую ошибку .. вам нужно также включить конечный ключ ['johndoe', 0], чтобы предотвратить возврат couchdb сообщений от имен пользователей, которые начинаются с «johndoe», например «johndoe59». –