按键

时间:2016-11-26 12:22:12

标签: react-native couchbase couchbase-lite

我使用react-native创建了一个移动应用程序,我使用couchbase进行同步。我已经使用了这个模块。 https://github.com/couchbaselabs/react-native-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);
      });
    });
  }

当key参数为整数时,该方法可以正常工作,但是当它是一个字符串时,它只返回所有文档。

1 个答案:

答案 0 :(得分:0)

这看起来像https://github.com/couchbaselabs/react-native-couchbase-lite/blob/master/index.js

中的错误

代码对提供的JSON.stringify参数的值调用key,这在处理引号方面有点棘手。 Mozilla文档有更好的讨论here