2012-04-19 147 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