Couchbase Java API和javascript视图未返回特定密钥的值
Couchbase Java API and javascript view not returning value for a specific Key
我在java 中使用couchbase API
View view = client.getView("dev_1", "view1");
Query query = new Query();
query.setIncludeDocs(true);
query.setKey(this.Key);
ViewResponse res=client.query(view, query);
for(ViewRow row: res)
{
// Print out some infos about the document
a=a+" "+row.getKey()+" : "+row.getValue()+"<br/>";
}
return a;
以及couchbase中的java脚本视图
function (doc,meta) {
emit(meta.id,doc);
}
所以,当我删除语句query.setkey(this.Key)时,它会返回所有的表,我在这里缺少什么。。如何更改函数以仅引用键中提到的表名
像这样更改映射函数:
function (doc,meta) {
emit(doc.table,null);
}
最好不要像那样发出整个文档
emit(doc.table, doc)
注意:这非常重要:
我在Java项目中多次尝试使用setKey("key")
,并使用CouchBaseConsole3.0.1的Filter Result
对话框设置密钥,但都没有返回。
有一天,我用了setInclusiveEnd
,它成功了。我在CouchBase控制台3.0.1的Filter Result
对话框中选中了setInclusiveEnd复选框,得到了json输出。
query.setKey("whatEverKey");
query.setInclusiveEnd(true);
我希望这能对其他有同样问题的人有所帮助。如果有人找到了另一条出路,请随时添加评论。
我不知道为什么他们的文档没有具体说明这一点。
额外
如果您的json是从Java项目中的实体类派生的,请确保包含一个if statement
来测试实体类名的json字段,以包含emit
语句。这将避免密钥以null
:的形式发出
if(doc._class == "path.to.Entity") {
emit(doc.table, null);
}
相关文章:
- API密钥使用和检查示例
- react.js中的密钥绑定
- JS对象密钥序列
- 似乎无法使用javascript从AWS 3S中删除密钥
- 加载两个具有相同父密钥名称的json文件
- 如何获取$data.Entity的密钥
- Angular ngRepeat:重复错误(尽管没有重复的密钥)
- CryptoJS和密钥/IV长度
- 基于api密钥的NodeJS web服务
- 输入密钥和firefox提示
- React Rails应用程序中动态子项的密钥分配问题
- 正在Javascript Cookie中设置重复密钥
- Riak:2i 查询不返回密钥
- 输入密钥不提交 - 如何返回 false
- 有没有办法从返回密钥上的<文本区域>提交表单
- 下载js GET请求返回的带有唯一密钥的文件
- Couchbase Java API和javascript视图未返回特定密钥的值
- 粘贴IE返回的密钥代码
- JSON 密钥存在,但返回 false
- 如何返回仅包含一个特定密钥对的多个集合