2016-02-23 4 views
1

Я создаю приложение, в котором хранится около 1M документов в ведре. После сохранения я не могу получить все из них. Я создал представление, и я добавил его как вид производства. Когда я запускаю свое приложение, я всегда могу получить только 1578 документов. Размер ViewRow также одинаков. Я не хочу использовать N1QL.Чтение всех документов с сервера Couchbase последовательно Couchbase Server

Вот функция, которая используется для извлечения всех документов.

public Iterable findAllUsers() { 

    ViewQuery query = ViewQuery.from("dev_LCDD", "findAllUsers"); 
    ViewResult result = theBucket.query(query); 
    return result; 

} 

Функция приводится ниже печатает размер результата, который был возвращен в findAllUsers() функция, и я не в состоянии получить все документы.

public List findUserInformation() { 
     Iterable result = theDao.findAllUsers(); 
     Gson gson = new GsonBuilder().create(); 
     ArrayList customers = new ArrayList(); 

     for (ViewRow row : result) { 
      Customer cust = gson.fromJson(row.document().content().toString(), Customer.class); 
      if(!docId.isEmpty()) 
      customers.add(cust); 
     } 
     System.out.println("List size: "+ customers.size()); 
     return customers; 
    } 

Может кто-нибудь помочь мне с получением всех документов?

Редактировать: Я также не уверен, что мой Java API по-прежнему обращается только к представлению разработки. Это связано с тем, что только если существует копия представления «Вид производства в разработке», мое приложение запускается без предупреждения. Теперь я удалил копию из Development View, и мое представление существует только в представлении «Производство». Я получаю следующее предупреждение: «com.couchbase.client.core.endpoint.ResponseStatusConverter fromHttp ВНИМАНИЕ: Неизвестный ResponseStatus с протоколом HTTP: 500".

+0

Где вы устанавливаете поле 'docId'? –

+0

@ АндрейБеньковский В том же классе, в котором присутствует findUserInformation(). Наличие или отсутствие «if (! DocId.isEmpty())» не имеет никакого значения в течение времени выполнения. –

ответ

2

Префикс 'dev_' используется для разработки проектных документов. Если вы хотите использовать опубликованное представление, вам нужно его удалить. Таким образом, ваш код должен быть

public Iterable findAllUsers() { 

    ViewQuery query = ViewQuery.from("LCDD", "findAllUsers"); 
    ViewResult result = theBucket.query(query); 
    return result; 

} 
+0

Большое спасибо. Это помогло. –

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