2016-11-26 5 views
2

Я создал мобильное приложение с использованием реакции-native, и я использую couchbase для синхронизации. Я использовал модуль для этого. https://github.com/couchbaselabs/react-native-couchbase-liteреакция-родной couchbase lite фильтр по ключевому слову

Согласно документации, я могу отфильтровать ключ, используя метод queryView. Но в моем приложении я могу только фильтровать целочисленные значения, используя метод queryView. когда я использую метод queryView для строк, он не фильтрует значения из документов, он просто возвращает все документы из соответствующего типа. Следующим образом я определил свои взгляды.

 views: { 
      person_view: { 
      map: 'function (doc) { if (doc.type === "Person") { emit(doc.name, null);} }' 
      }, 
     } 

нижеследующий способ фильтрации.

filterDocumentByAttribute(view, key) { 
    return new Promise((resolve, reject) => { 
     let options = { 
     key: key, 
     include_docs: true 
     }; 
     this.database.queryView(DESIGN_DOCUMENT_NAME, view, options) 
     .then((res) => { 
     console.log(res.rows); 
     resolve(res.rows); 
     }) 
     .catch((error) => { 
     console.log(error); 
     reject(error); 
     }); 
    }); 
    } 

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

ответ

0

Это похоже на ошибку в https://github.com/couchbaselabs/react-native-couchbase-lite/blob/master/index.js

код вызывает JSON.stringify на значение для поставляемого key параметра, который немного сложнее в том, как она обрабатывает кавычки. Документы Mozilla имеют довольно хорошее обсуждение here для получения дополнительной информации.

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