我有一個基於XML存儲在CouchDB數據庫中的文檔。CouchDB:訪問映射函數中的嵌套結構
某些鍵包含的命名空間,並在表格上「命名空間:關鍵」:
{"mykey": {"nested:key": "nested value"}}
在地圖的功能,我想發出嵌套值作爲重點,但名稱中的冒號使它很難...
emit(doc.mykey.nested:key, doc) <-- will not work.
有沒有人知道如何解決這個問題?
我有一個基於XML存儲在CouchDB數據庫中的文檔。CouchDB:訪問映射函數中的嵌套結構
某些鍵包含的命名空間,並在表格上「命名空間:關鍵」:
{"mykey": {"nested:key": "nested value"}}
在地圖的功能,我想發出嵌套值作爲重點,但名稱中的冒號使它很難...
emit(doc.mykey.nested:key, doc) <-- will not work.
有沒有人知道如何解決這個問題?
暗示它的所有隻是JSON和JavaScript給了我一些新的搜索想法。
這可能是在json鍵冒號無效,但我找到了一種方法。通過在文檔對象看作爲一個哈希,我可以通過以下方式獲得自己的價值:
Doc.mykey['nested:key']
它的工作原理 - 現在...
使用點格式與下標格式之間沒有明顯的區別。所以這是處理它的正確方法。 'emit(doc.mykey [「nested:key」],doc)'很好! – JasonSmith 2010-05-07 07:13:50
這是因爲Couch是基於JSON的文檔數據庫,而doc.mykey.nested:key不是有效的JSON標識符。 JSON標識符必須與JavaScript標識符匹配,並且:不是有效的標識符字符。
所以,簡單的答案是:「不,這不會和不能工作」。你需要改變你的標識符。
其實,我應該有資格。
沙發可以使用幾乎任何它的意見等,理論上,與任何有效載荷。但開箱即用,它只是JavaScript和JSON。
在www.json.org上閱讀時,我找不到任何關於有效標識符的信息。我發現的所有內容都是在名稱:值對中,名稱應該是一個字符串,並且一個字符串可以包含任何Unicode字符(但有些不包括冒號必須轉義)。你有沒有任何引用來批准你的陳述? – Vegar 2010-05-06 18:32:12
既然你說你已經有了它存儲在數據庫中,我冒昧地清理了文檔示例的語法。乾杯! – JasonSmith 2010-05-07 07:15:57