Я создаю приложение, в котором хранится около 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".
Где вы устанавливаете поле 'docId'? –
@ АндрейБеньковский В том же классе, в котором присутствует findUserInformation(). Наличие или отсутствие «if (! DocId.isEmpty())» не имеет никакого значения в течение времени выполнения. –