2015-11-17 3 views
3

Есть ли способ прочитать все документы из ведра? Это активное ведро, и я хочу получить доступ к вновь созданному документу.
Мало кто предложил использовать для просмотра запроса на ведро.
Как создать представление, которое будет обновляться с новыми или обновленными документами?
Вновь созданные Vi Карта Функция:Couchbase: чтение всех документов из ведра

function (doc, meta) { 
    emit(doc); 
} 

Снижение функции пуста. Когда я запрашиваю вид вроде этого bucket.query(ViewQuery.from("test1", "all")).totalRows(), он возвращает 0 результатов назад.

+0

Вы проверили представление в веб-интерфейсе Couchbase? он возвратил там какие-либо результаты? – FuzzyAmi

ответ

5

Для возврата нулевой проблемы результатов вы рекламировали представление на производственном экране? Это распространенная ошибка. Взгляды на развитие видят только небольшое подмножество данных, чтобы не перегрузить сервер. Попробуйте это первым.

Кроме того, never испускает весь документ, если вы можете ему помочь, особенно если вы просматриваете все документы в ведре. Вы хотите исправить идентификаторы документов, а затем, если вам нужно получить содержимое этих объектов, выполните операцию получения или массовую операцию. Я бы дал вам прямую ссылку для массовых операций, но вы не сказали, какой SDK вы используете, а какие - SDK. Например, для Java.

Все, что было сказано, у меня есть вопросы о том, почему вы делаете эквивалент select * из ведра. Что вы планируете делать с этими данными, если у вас есть? Что вы на самом деле пытаетесь сделать? Конечно, есть много вариантов, как это решить.

+0

+1 для подсказки относительно того, чтобы никогда не испускать полные документы. мотивация такова: путем испускания полного документа вы создаете дубликат данных в индексе. Другими словами, для каждого документа вы создаете другой, идентичный документ в индексе. нехорошо. – FuzzyAmi

+0

Еще одна вещь, которую я мог бы порекомендовать, - взглянуть на это сообщение в блоге. http://blog.couchbase.com/2015/october/determine-data-access-in-couchbase – Kirk

2

Вид - это только предопределенный запрос по ковшу. Новые или измененные документы будут отображаться в представлении.

Вы можете проверить результаты своего просмотра, когда вы его создадите, нажав кнопку «Показать результаты» в веб-интерфейсе, поэтому, если 0 документов отображается там, неудивительно, что вы получаете 0 из SDK.

Если вы используете Couchbase Server 4+ и последний SDK, вы можете использовать N1QL и создать первичный индекс в своем ковше, а затем сделать обычный Select * from bucket, чтобы получить все документы.

+0

Как я могу получить все документы из ведра без представления? –

+0

Разве вы не путаете couchbase с couchdb в своем ответе @ cricket_007? В couchbase вам нужно представление, и вы не должны выпускать документ. Java sdk очень легко позволит вам получить полный документ во время запроса, см. Ответ kirk –

+0

@ SimonBaslé - Нет, я думал о Couchbase, я пытался понять это вчера, потому что у меня был код, но он действительно использовал представление: \ И только потому, что вы не должны выпускать документ, не означает, что вы не можете :) Альтернативно, N1QL не использует Views –

Смежные вопросы