我有一个基于xml结构的文档,我存储在CouchDB数据库中。
某些键包含名称空间,并且位于“namespace:key”形式:
{"mykey": {"nested:key": "nested value"}}
在map函数中,我想将嵌套值作为键发出,但名称中的冒号使其变硬...
emit(doc.mykey.nested:key, doc) <-- will not work.
有谁知道如何解决这个问题?
答案 0 :(得分:4)
暗示它只是JSON和JavaScript给我带来了一些新的搜索想法。
可能是json键中的冒号无效,但我找到了一种方法。通过将doc对象视为哈希,我可以通过以下方式访问我的值:
Doc.mykey['nested:key']
它现在有效......
答案 1 :(得分:0)
这是因为Couch是基于JSON的文档数据库,而doc.mykey.nested:key不是有效的JSON标识符。 JSON标识符必须与JavaScripts标识符匹配,并且:不是有效的标识符字符。
所以,简单的答案是:“不,这不会也不会奏效”。您需要更改标识符。
实际上,我应该对此有资格。
Couch可以使用几乎任何东西,因为它的观点等等,理论上,它可以与任何有效载荷一起使用。但开箱即用,它只是JavaScript和JSON。