MongoDB中

进口CSV创建模式,我有一个CSV,看起来像这样:MongoDB

Number,Date,ClientName,ClientSurname,ClientAge,Option1,Option2 

1,01/01/2015,John,Foo,24,30,

使用mongoimport我得到

{ 

"_id":ObjectID(""),

"Number":1,

"date":"01/01/2015",

"ClientName":"John",

"ClientSurname":"Foo",

"ClientAge":24,

"Option1":30,

"Option2": "",

}

我想是

{ 

"_id":ObjectID(""),

"Number":1,

"date":"01/01/2015",

"Client":[{

"ClientName":"John",

"ClientSurname":"Foo",

"ClientAge":24,

}]

"Options":["30"]

}

我试着与导入之前的验证,但没有工作,是否有可能改变模式,因为我想现在我有数据导入,或者我应该使用另一种方法?

回答:

如果您在CSV标头中使用虚线字段名称,mongoimport会自动为您创建子文档。但是,这不适用于数组。

例如:

$ cat test.csv 

Number,Date,Client.Name,Client.Surname,Client.Age,Option.0,Option.1

1,01/01/2015,John,Foo,24,30,

$ mongoimport -d test -c test --drop --headerline --type=csv test.csv

> db.test.find()

{

"_id": ObjectId("5a4f0768c481930d7c589a41"),

"Number": 1,

"Date": "01/01/2015",

"Client": {

"Name": "John",

"Surname": "Foo",

"Age": 24

},

"Option": {

"0": 30,

"1": ""

}

}

要获得Option数组,你需要做一些后期处理。

或者,您可以使用单独的脚本来获取CSV文件,并使用驱动程序(例如Pymongo)将其插入到MongoDB中。这样,您就可以完全控制生成的文档的结构。

以上是 MongoDB中 的全部内容, 来源链接: utcz.com/qa/265836.html

回到顶部