CouchDB:访问map函数中的嵌套结构

时间:2010-05-06 16:24:45

标签: map couchdb

我有一个基于xml结构的文档,我存储在CouchDB数据库中。

某些键包含名称空间,并且位于“namespace:key”形式:

{"mykey": {"nested:key": "nested value"}}

在map函数中,我想将嵌套值作为键发出,但名称中的冒号使其变硬...

emit(doc.mykey.nested:key, doc)   <-- will not work. 

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

暗示它只是JSON和JavaScript给我带来了一些新的搜索想法。

可能是json键中的冒号无效,但我找到了一种方法。通过将doc对象视为哈希,我可以通过以下方式访问我的值:

Doc.mykey['nested:key']

它现在有效......

答案 1 :(得分:0)

这是因为Couch是基于JSON的文档数据库,而doc.mykey.nested:key不是有效的JSON标识符。 JSON标识符必须与JavaScripts标识符匹配,并且:不是有效的标识符字符。

所以,简单的答案是:“不,这不会也不会奏效”。您需要更改标识符。

实际上,我应该对此有资格。

Couch可以使用几乎任何东西,因为它的观点等等,理论上,它可以与任何有效载荷一起使用。但开箱即用,它只是JavaScript和JSON。