emit(doc._id, doc);
т.к. при вызове view на жестком диске создается индекс-файл, который будет содержать значения doc._id и doc!
UPDADE: doc - т.е. будут все поля документа.
Возвращайте только новые, просчитанные данные. Ибо есть ключик include_docs=true, при наличии которого БД отдаст кроме того, что в emit ещё и сами документы!
3 комментария:
include_docs это по сути джоин -- отсюда следствие, что он сильно увеличиваек время ответа CouchDB.
я не заметил замедления. данные вытаскиваются через ключ документа... да и сделать инклуд правильнее, чем потом делать запросы на документы по пришедшему списку doc._id (или 1 запрос через post)
Конечно, тянуть документы постфактум это ещё хуже, но include_docs действительно замедляет запрос к вьюхе. На больших объемах точно заметите -- это просто следует из структуры стораджа CouchDB и сути джоина.
Как вариант эмитить документ как значение, либо только какую-то нужную его часть. Но тоже не всегда подходит, т.к. увеличивает размер индекса.
Отправить комментарий