2011-10-18 5 views
6

J'ai un document mongo avec une structure comme: { "foo": { "bar1": "val1", "bar2": "val2"} } Je voudrais importer mes données à partir d'un fichier CSV en utilisant mongoimport --type csv --headerline [...]Utiliser mongoimport pour lire le CSV dans une structure imbriquée?

Je ne sais pas comment formater le nom du champ dans la csv pour traiter la structure imbriquée. Par exemple:

test.csv:

foo.bar1 
example 

retours { "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo.bar1" : "example" } au lieu de la sortie désirée:

{ "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo: {"bar1" : "example"} } 

Le nom du champ semble être interprété comme une chaîne quelle que soit sa valeur. Des choses comme foo[bar1] et foo: {bar1} sont également utilisées verbatim.

+0

Ce n'est peut-être pas possible actuellement. De [ce thread] (http://groups.google.com/group/mongodb-user/browse_thread/thread/4d516486b4ac01c2/de29edd7e2fe94be?lnk=gst&q=mongoimport+nested#de29edd7e2fe94be): Impossible de faire l'imbrication avec csv. Une sorte d'api bizarre. Suggestions/correctifs bienvenue –

Répondre

7

Ceci n'est pas supporté dans la version actuelle (v2.0) de mongoimport, mais il devrait être bientôt disponible. Vous pouvez consulter le billet JIRA ici, prévue pour v2.1:

En attendant, si vous pouvez traduire vos données CSV à JSON, vous pouvez utiliser mongoimport --type json pour importer les données imbriquées .

Questions connexes