Couchbase附加到JSON文档中的集合

Couchbase附加到JSON文档中的集合,couchbase,Couchbase,如何使用Java SDK将数据附加到已存在JSON文档的集合中?Couchbase中目前没有JSON附加功能,因此您需要获取文档,修改它,然后将其重新插入数据库。您还可以使用cas操作,以确保没有其他客户端同时更新文档。我想我有某种有效的解决方案 首先,使用ByTestStreams(非json值)将所有内容存储在临时数据库中。这样,基本上可以根据需要附加值。完成追加操作后(比如在批量数据加载结束时),可以执行一个小程序逐个检索json中的所有键,并将其转换为json值并插入到新数据库(甚至可以

如何使用Java SDK将数据附加到已存在JSON文档的集合中?

Couchbase中目前没有JSON附加功能,因此您需要获取文档,修改它,然后将其重新插入数据库。您还可以使用cas操作,以确保没有其他客户端同时更新文档。

我想我有某种有效的解决方案

首先,使用ByTestStreams(非json值)将所有内容存储在临时数据库中。这样,基本上可以根据需要附加值。完成追加操作后(比如在批量数据加载结束时),可以执行一个小程序逐个检索json中的所有键,并将其转换为json值并插入到新数据库(甚至可以使用现有数据库)

这显然是一个解决方法,但比每次查询都要有效得多


干杯,

我有一个很好的东西可以使用,但它需要通过代码来处理。 我在couchbase 2.x中编写了prepend/append 您可以使用遗留文档,并在JSON前加上“,” 当您取出它时,您需要放入“[”“]”,然后您将得到包含数据的JSON列表” 当value是一个JSON时,我想把它放在一个列表中

try {
    bucket.prepend(LegacyDocument.create(key, value + ","));
} catch (Exception e){
    //if fails first insert the basic JSON first.
    bucket.insert(LegacyDocument.create(key, value));
}

感谢您的回答。在一个巨大的文档中更新少数成员(大小),需要将整个文档从Couchbase节点加载到服务器并将其发送回节点。我认为这会导致性能开销和网络开销。此设计建议使用小文档。这里有一个警告。大量使用小文档需要更多内存来维护Couchbase Server memcache中的密钥/元数据信息。哪一个是您建议使用esign吗?小/大文档大小。我倾向于建议使用较小的文档作为一般最佳解决方案,但这实际上取决于您的应用程序。您认为您将拥有多少文档?每个节点上的内存配额是多少?另外,当您的应用程序获得整个文档时,它实际将使用多少大文档文档?我认为最好单独发布一个关于您的用例的更多细节的问题,然后我可以在那里回答。