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