2016-01-15 2 views
2

Я делаю запрос POST в CouchDB со списком ключей в теле.CouchDB views: total_rows vs offset vs rows?

Это вопрос по предыдущему вопросу, заданному в разделе «Переполнение стека»: CouchDB Query View with Multiple Keys Formatting).

Я вижу, что результат имеет 711 строк, возвращенных в этом случае со смещением 209. Для меня смещение означает действительные результаты, которые были усечены - и вам нужно будет перейти на следующую страницу, чтобы увидеть их.

Я сбиваюсь с толку, потому что смещение, строки и то, что я на самом деле получаю, похоже, не складываются. Эти результаты, которые я получаю:

{ 
    total_rows: 711, 
    offset: 209, 
    rows: [{ 
    id: 'b45d1be2-9173-4008-9240-41b01b66b5de', 
    key: 2213, 
    value: [Object] 
    }, { 
    id: 'a73d0b13-5d36-431f-8a7a-2f2b45cb480d', 
    key: 2214, 
    value: [Object] 
    }, 
    etc BUT THERE ARE ONLY 303 OBJECTS IN THIS ARRAY???? 
    ] 
} 
+0

Кроме того, аналогичный, но не тот же вопрос о том, как полные строки/смещение связаны с возвращаемыми строками: http://stackoverflow.com/questions/33902858/couchdb-returns-wrong-total-rows/34805825 ? noredirect = 1 # comment57354084_34805825 –

ответ

3

Вы не предоставили параметры запроса, которые вы используете, поэтому я должен быть немного общего.

Значение total_rows - это общее количество строк в самом представлении. offset - это индекс в представлении первой сопоставимой строки для данного запроса. Количество строк, соответствующих параметрам запроса, возвращается в массиве rows, общее число которых тривиально для получения.

Если в запросе прямого запроса нет записей, значение смещения является индексом в представлении, в котором была бы запись, если бы она имела желаемый ключ.

0

Казалось бы, что смещение относится к числу документов, имевшихся в первый документ, который соответствует основным критериям найден.

, а затем строки - все документы, соответствующие критериям.

i.e строки возвращают все документы, соответствующие ключевым критериям, а смещение указывает вам, что «индекс» во всех документах, возвращаемых представлением, был найден первый документ, соответствующий ключевым критериям.

Пожалуйста, дайте мне знать, если это не правильно :)