【问题标题】:Querying CouchBaseLite Views?查询 CouchBaseLite 视图?
【发布时间】:2014-02-03 12:33:43
【问题描述】:

我正在查询 CouchBaseLite 视图,但每次查询时都会收到此异常。它没有返回结果。

detailMessage: last sequence < 0(-1)

查看:

com.couchbase.lite.View viewItemsByDate = database.getView(String.format("%s/%s", designDocName, byDateViewName));
        viewItemsByDate.setMap(new Mapper() {
            @Override
            public void map(Map<String, Object> document, Emitter emitter) {
                Object createdAt = document.get("text");
                if (createdAt != null) {
                    emitter.emit(createdAt.toString(), null);
                }
            }
        }, "1.0");

我对此视图的查询是:

com.couchbase.lite.View view = database.getView(byDateViewName);
        Query query = view.createQuery();//database.createAllDocumentsQuery();

        List<Object> keyArray = new ArrayList<Object>();
        keyArray.add("A");
        keyArray.add("B");
        query.setKeys(keyArray);

        QueryEnumerator rowEnum = query.run();
        for (Iterator<QueryRow> it = rowEnum; it.hasNext();) {
            QueryRow row = it.next();
            Log.d("Document ID:", row.getDocumentId());

        }

我在数据库中有文档,键为 "text": "A""text": "B",但它仍然显示异常。 last sequence &lt; 0(-1)

为什么找不到我查询的行?

【问题讨论】:

    标签: android couchdb couchbase couchbase-lite


    【解决方案1】:

    问题是您查询的视图名称与您定义的视图名称不同。

    改变

    database.getView(String.format("%s/%s", designDocName, byDateViewName));
    

    database.getView(byDateViewName);
    

    它解决了问题。

    Couchbase Lite Android issue #66

    【讨论】:

    • 有没有我们可以看到已定义视图的列表?
    • 没有公开的 API(老实说,我不记得为什么),但只需查看您在源代码中注册的视图的名称。
    猜你喜欢
    • 2018-05-30
    • 2017-07-25
    • 2012-03-27
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多