0

我正在使用 Couchbase 并在我的本地计算机上使用 ASP.NET 对其进行测试。我已将一些数据插入到示例文档中,并且可以使用 ASP.NET C# Driver for Couchbase 读取数据。问题是当我登录到集群管理 GUI 并查看文档时,我会看到很多没有意义的字符,实际上看不到我插入的文档的文本表示。使用 MongoDB、BigCouch、RavenDB,数据是简单明了的 JOSN 文档,并且很容易更新单个文档。我在这里错过了什么吗?

在我的 .NET 应用程序中,我有以下代码:

 var client = new CouchbaseClient();


 client.Store(StoreMode.Add, "aaa", "sample_data");
 client.Dispose();

当我查看文档时,我得到的是控制台中的内容:

"Y29tcGFyaXNvbl9pZDogMQ=="

这是二进制格式,不是 JSON。使用 CouchBase 2.0 测试版

4

2 回答 2

2

在 Couchbase Server 2.0 中,如果您将无效 JSON 作为值存储在您保存的键/值对中,您将看到已保存项目的 Base64 编码版本。由于“sample_data”不是有效的 JSON 文档,Couchbase Server 将其视为字节数组。当您查看字节时,它们是 Base64 编码的。相反,如果您将 store 方法更改为如下所示:

client.Store(StoreMode.Add, "aaa", "{ \"message\" : \"sample_data\" }");

然后您会看到实际的 JSON 文档。

Couchbase 客户端最新 Beta 版的入门指南包含有关使用 JSON 和使用 Couchbase Server 2.0 的视图的更多信息 - http://www.couchbase.com/develop/net/next

于 2012-10-31T14:33:09.577 回答
1

这是 Couchbase 2.0 GUI 显示的错误。现在我在 RHEL 6.0 中使用 couchbase-server-2.0.0-1723.x86_64,并使用 Coubase 2.0 GUI 创建新文档。当我在 json 下插入时:

{
  "_id": "100",
  "name": "Thomas",
  "dept": "Sales",
  "salary": 5000
} 

,然后在列出base64字符串时保存:

"eyJfaWQiOiIxMDAiLCJuYW1lIjoiVGhvbWFzIiwiZGVwdCI6IlNhbGVzIiwic2FsYXJ5Ijo1MDAwfQ=="

我可以关注这篇文章:base64 value display in GUI (Beta 2.0),修复此路径中的 javascript 代码:

/opt/couchbase/lib/ns_server/erlang/lib/ns_server-2.0.0r_331_g08fb51b/priv/public/js

最后,清理浏览器缓存并再次登录 Couchbase 2.0 GUI。文件将显示:

"{"_id":"100","name":"Thomas","dept":"Sales","salary":5000}"

这是正确的。

于 2012-11-12T08:03:10.373 回答