2012-04-19 91 views
2

我有一個模式,與文檔結構是這樣的:的MongoDB - 導入CSV到嵌套文件

{ "_id" : ObjectId("4f8dcb06ee21783d7400003c"), 
    "venue" : ObjectId("4f8dcb06ee21783d7400003b"), 
    "name" : "Some event", 
    "webite: "www.whatever.com", 
    "attendees" : [ 
        { "_id" : ObjectId("4f8dfb06ee21783d7134503a"), "firstName" : "Joe", "lastName" : "Blogs", "emailAddress" : "[email protected]" }, 
        { "_id" : ObjectId("4f8dfb06ee21783d7134503b"), "firstName" : "John", "lastName" : "West", "emailAddress" : "[email protected]" } 
        { "_id" : ObjectId("4f8dfb06ee21783d7134503c"), "firstName" : "Simon", "lastName" : "Green", "emailAddress" : "[email protected]" } 
        { "_id" : ObjectId("4f8dfb06ee21783d7134503d"), "firstName" : "Harry", "lastName" : "Smith", "emailAddress" : "[email protected]" } 
       ], 
    "eventType" : "Party" 
} 

我有一個CSV文件,我想導入到與會者集合.. 。

這是可能的使用mongoimport? 我這樣說的:Using mongoimport to read CSV into nested structure?,它好像答案可能是不...

由於這是一個時間的操作,我不介意,如果我不得不將其導入「參與者」集合中,然後運行另一個命令以插入到我的文檔中的與會者集合中? (目前只有一個事件文檔......)

回答

5

你是對的,不幸的是答案是否定的。

Mongoimport是一個非常簡單的程序。 (您可以在這裏看到:https://github.com/mongodb/mongo/blob/master/src/mongo/tools/import.cpp)對於希望導入比二維字符串和數字表格更復雜的數據的用戶,官方建議是編寫一個自定義腳本,用於讀取輸入文件並按照您希望的格式創建文檔。希望import.cpp文件會給你一些關於如何開始的想法。

+0

我把它指定爲json的文件可能會更好地工作......? – Alex 2012-04-24 14:21:29

+0

如果您可以獲取想要以json格式導入的數據,那麼導入它可能會更容易。但是,如果您要編寫腳本將.csv文檔轉換爲json格式,那麼您最好還是讓腳本將數據直接導入Mongo! – Marc 2012-04-25 22:10:02

+0

未來可能會添加此功能。查看相關的錯誤報告[虛線字段名稱應該在mongoimport中生成嵌套對象](https://jira.mongodb.org/browse/SERVER-3691) – 2014-01-24 21:49:37