2015-07-08 12 views
1

Привет Я новичок в couchbase/couchbase-lite, и я стараюсь запросить представление с несколькими ключами без успеха. Ее как функция выглядит карта:Запросить несколько ключей в режиме couchbase lite

public void map(Map<String, Object> doc, Emitter emitter) { 
    if (doc.get("type").equals("my_type") { 
     List<Object> keys = new ArrayList<Object>(); 
     keys.add(doc.get("key_1")); 
     keys.add(doc.get("key_2")); 
     emitter.emit(keys, null); 
    } 
} 

Моя проблема заключается в том, что мне нужно запросить мнение либо только с Key_1 или с комбинацией Key_1 и Key_2 как так

List<Object> keys = new ArrayList<Object>(); 
keys.add(key_1); 
if (key_2 != null) keys.add(key_2); 
query.setKeys(keys); 
results = query.run() 

Однако результаты являются всегда пусто. Упускаю ли я что-нибудь?

ответ

1

Два испускает не работает. Если вы даете метод ArrayList в методе setKeys(), каждый ключ в списке соответствует каждому ключу в испускании. Если вы хотите совместить два ключа, добавьте ключи ArrayList в другой список. Затем передайте его методу setKeys(). Например,

List<Object> keys = new ArrayList<Object>(); 
List<Object> allKeys = new ArrayList<Object>(); 
keys.add(key_1); 
if (key_2 != null) keys.add(key_2); 
allKeys.add(keys); 
query.setKeys(allKeys); 
results = query.run(); 
Смежные вопросы