我正在尝试将一个java POJO插入到couchbase商店中,cas
调用正下方的json看起来像这样 -
{
"key": "sampleKey",
"myMap": {
"Messages": [
{
"field": "f1",
"label": "l1"
},
{
"field": "f2",
"label": "l2"
},
{
"field": "f3",
"label": "l3"
},
{
"field": "f4",
"label": "l4"
}
],
"Orders": [
{
"field": "f1",
"label": "l1"
},
{
"field": "f2",
"label": "l2"
},
{
"field": "f3",
"label": "l3"
},
{
"field": "f4",
"label": "l4"
},
{
"field": "f5",
"label": "l5"
}
]
}
}
我已经验证这是一个有效的JSON并且它仍然作为二进制对象插入,因为我尝试通过couchbase GUI查找此文档,它显示了base64编码的字符串。其他几个文件也很好。我想知道这是否只发生在cas
方法而不是set
。
相关的java代码是这样的:
String myJson = objectMapper.writeValueAsString(cacheObject);
CASResponse response = couchbaseClient.cas(cacheObject.getKey(), casValue.getCas(), myJson, PersistTo.MASTER);
// Java pojo
public class CacheObject
{
private String key;
private Map<String, List<FieldLabel>> myMap = new HashMap<String, List<FieldLabel>>();
// setters and getters
}
关于为什么会发生这种情况的任何指示都将不胜感激。
Update1:我正在使用Couchbase java客户端版本1.4.4,服务器版本2.5
Update2:我不认为这与我的代码或json有关,我尝试用一个大的json文档(一个有效的文件)替换我的json,我在couchbase GUI中看到了相同的结果。我认为这种情况正在发生,因为文档的大小可能超过2.5KB。我上面粘贴的json删除了实际的字段和标签,它们的字符串略长。 奇怪的是,当我修改我的文档时,960个字符以下的文档通常显示为Json,但略高于这些文档存储为二进制文件。
答案 0 :(得分:0)
如果文档大小超过2.5KB,则文档将无法在控制台中编辑,并且可以在名为documents.js的文件中更改此值