MongoDB - 将CSV导入嵌套文档

时间:2012-04-19 22:44:47

标签: mongodb

我有一个架构,其文档结构如下所示:

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

我有一个CSV文件,我想将其导入与会者集合...

是否可以使用mongoimport? 我读到这个:Using mongoimport to read CSV into nested structure?似乎答案可能不是......

由于这是一次性操作,我不介意我是否必须将其导入“参与者”集合,然后运行另一个命令插入我的文档中的参与者集合? (目前只有一个事件文件......)

2 个答案:

答案 0 :(得分:6)

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

Mongoimport是一个非常简单的程序。 (你可以在这里看到:https://github.com/mongodb/mongo/blob/master/src/mongo/tools/import.cpp)对于想要导入比二维字符串和数字表更复杂的数据的用户,官方的建议是编写一个将读入的自定义脚本您的输入文件并以您希望的格式创建文档。希望import.cpp文件能为您提供有关如何入门的一些想法。

答案 1 :(得分:2)

这可能很晚了,但是对于运行 mongoDB> 4.x

的未来用户很有用

您可以通过在名称上使用点运算符来使用csv文件导入子文档。

例如如果您想要一个包含名为 extra 的子文档的文档,其中包含税,州和created_at ,则可以将字段命名为extra.taxes.auto(), extra.state.auto(), and extra.created_at.date(2006-01-02)

我被困在这个问题上,无法在线找到帮助,因此将其发布在这里。 希望这对某人有帮助。