如何在Couchbase Lite中按属性检索数据?

时间:2017-12-20 18:48:15

标签: couchbase-lite couchbase-view

我的文档具有属性 docType ,根据特定案例模板或审核中每种类型的用途将它们分开。但是,当我执行以下操作时:

document.getProperty("docType").equals("template");
document.getProperty("docType").equals("audit");

它们的结果始终相同,每次存储所有文档时都会返回,而不会通过 docType 过滤它们。

下面,您可以查看查询功能。

public static Query getData(Database database, final String type) {
    View view = database.getView("data");
    if (view.getMap() == null) {
        view.setMap(new Mapper() {
            @Override
            public void map(Map<String, Object> document, Emitter emitter) {
                if(String.valueOf(document.get("docType")).equals(type)){
                    emitter.emit(document.get("_id"), null);
                }
            }
        }, "4");
    }
    return view.createQuery();
}

任何提示?

1 个答案:

答案 0 :(得分:0)

这不是一种有效的方法。您的视图函数必须是纯的(它不能引用外部状态,如“类型”)。创建完成后,您可以通过设置开始和结束键或只是一组通常用于过滤的键来查询它。