我一直在使用Ruby,但這是我第一次對數據庫做任何事情。我一直在玩MongoDB一段時間,在這一點上,我已經開始嘗試並填充一個簡單的數據庫。在Ruby中,如何使用嵌套數組作爲輸入來遞歸地填充Mongo數據庫?
這是我的問題。我有一個包含特定格式數據的文本文件。當我在閱讀文件時,該數據被存儲在嵌套的數組像這樣:
dataFile = ["sectionName", ["key1", "value1"], ["key2", "value2", ["key3", ["value3A", "value3B"]]]
格式將始終是該陣列的第一個值是一個字符串,每個隨後的值是一個數組。每個數組都被格式化爲一個鍵/值對。但是,該值可以是一個字符串,兩個字符串的數組或具有自己的鍵/值數組對的一系列數組。在閱讀數據文件之前,我不知道有關數據文件的任何細節,只是它符合這些規則。
現在,這是我的問題。我想將它讀入保存這個基本結構的Mongo數據庫中。所以,舉例來說,如果我是用手工做到這一點,它應該是這樣的:
newDB = mongo_client.db("newDB")
newCollection = newDB["dataFile1"]
doc = {"section_name" => "sectionName", "key1" => "value1", "key2" => "value2", "key3" => ["value3A", "value3B"]}
ID = newCollection.insert(doc)
我知道必須有一個簡單的方法來做到這一點。到目前爲止,我一直在嘗試各種遞歸函數來解析數據,將其轉換爲mongo命令並嘗試填充我的數據庫。但它只是感覺笨重,就像有更好的方法。任何洞察這個問題將不勝感激。
gautamc, 非常感謝你。你太聰明瞭。但是,我確實有一個問題要問你。該解決方案可以平滑輸入數據。但是,我需要保持結構完整。那可能嗎? – user2800390