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

How to retrieve data by property in Couchbase Lite?

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

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

它们的结果总是相同的,它 returns 每次存储所有文档时都没有按 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();
}

有什么提示吗?

这不是一个有效的方法。您的视图函数必须是纯的(它不能引用外部状态,例如 "type")。创建后,您可以通过设置开始键和结束键来查询您想要的内容,或者只是一组一般的键来过滤。