我熟悉CouchDB以及将其结果映射到Scala对象的想法,以及找到一些自然的方法来迭代它,立即出现.
但我发现使用CouchDB的json/document-centric/shchema-free方法,Ruby和Javascript等动态语言做得非常好.
用静态语言用Couch做任何事情的好方法吗?
我知道CouchDB纯粹与JSON对象一起工作.由于JSON是无类型的,因此很容易相信它更适合动态语言.但是,XML通常也是非类型化的,Scala对创建和操作XML有很好的库支持.有关Scala的XML功能的探索,请参阅:http://www.ibm.com/developerworks/library/x-scalaxml/
与JSON一样.有了适当的库支持,即使在静态语言中,处理JSON也会感觉很自然.有关在Scala中处理JSON数据的一种方法,请参阅此文章:http://technically.us/code/x/weaving-tweed-with-scala-and-json/
对于通常的对象数据库,有时可以方便地定义"模型"(例如,使用语言中的类),并使用JSON或XML或其他一些非类型化文档语言作为类的序列化表示.然后,正确的库支持可以在序列化形式(如JSON)和内存数据结构之间进行转换,具有静态类型和随附的所有好东西.有关此方法的一个示例,请参阅Lift记录,其中添加了与JSON之间的转换:http://groups.google.com/group/liftweb/msg/63bb390a820d11ba