Couchbase权威指南(十九)

文档数据

文档数据是纯字节序列,服务器不会试图去解析或理解存储的文档格式。这意味着你可以存储从数字到图片的任何东西。这种开放的存储结构,也意味着不必去声明或定义要存储信息的结构,你可以充分灵活的自己定义所需要的结构。

存储简单的信息,例如数字或字串,只需简单的将数据写进文档值。存储复杂的信息结构,你可能需要序列化对象,或者更通用的JSON结构。

序列化

序列化将特定语言的复杂的内部结构,例如hash或对象,转换为字节序列,从而可以存储在couchbase里。序列化的结构还能被还原成原来的数据结构,从而被特定的语言直接使用。

所有的couchbase客户端库在存取文档时,都自动支持序列化和反序列化结构或对象。

JSON

序列化信息的问题是,它是语言约定的。假如你在Java里存储一个对象或数据结构到couchbase,它被序列化为一个只有java语言库才能识别的串。假如要跨语言进行信息存储,你需要使用更通用的格式,比如JSON。

JSON之所以流行,一是因为它很简洁(它看起来像许多脚本语言的内置hash结构),二是它可以被Javascript直接使用,这样在web基础的应用里,不必对它做特别处理。

JSON的格式有良好的描述,详见http://json.org. 在couchebase里使用JSON的最好方法是,每条记录存储一个JSON哈希结构。例如,可以定义一条啤酒记录如下:

{
"id": "beer_Hoptimus_Prime",
"type": "beer",
"abv": 10.0,
"brewery": "Legacy Brewing Co.",
"category": "North American Ale",
"name": "Hoptimus Prime",
"style": "Imperial or Double India Pale Ale",
}

许多语言支持类似的hash、hashmap或关联数组结构,有相应的库可以将hash结构转换为JSON格式,并还原它们。

请注意:couchbase 2.0在使用JSON存储信息时,允许你使用查询和索引的高级功能。

此条目发表在Common分类目录,贴了标签。将固定链接加入收藏夹。