【问题标题】:Plain text view of a document in Couchbase GUICouchbase GUI 中文档的纯文本视图
【发布时间】:2012-11-12 16:03:10
【问题描述】:

我正在使用 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 测试版

【问题讨论】:

  • 您可以通过 Couchbase 管理控制台查看任何文档,但如果没有更多信息,很难猜测您可能做错了什么。您能否链接到有关问题所在的图片并描述您希望看到的情况?

标签: nosql couchbase


【解决方案1】:

在 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

【讨论】:

  • 使用了 JSON 序列化程序,它可以工作,但您的示例似乎不起作用。谢谢
  • 该代码应该可以工作,我刚刚对其进行了测试,它显示正确。如果您使用 StoreMode.Add 执行它并且有一个现有的密钥“aaa”,那么操作将失败。如果您使用 StoreMode.Set 运行它,它应该可以工作。
【解决方案2】:

这是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
} 

,然后保存while list base64 string:

"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}"

没错。

【讨论】:

  • 如果您使用带有_id 的UI 制作任何文档,它将被视为非JSON 并且不会显示在编辑器中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多