¿Usar Mongoimport para leer CSV en estructura anidada?
-
26-10-2019 - |
Pregunta
Tengo un documento Mongo con una estructura como: { "foo": { "bar1": "val1", "bar2": "val2"} }
Me gustaría importar mis datos de un CSV usando mongoimport --type csv --headerline [...]
No estoy seguro de cómo formatear el nombre del campo en el CSV para abordar la estructura anidada. Por ejemplo:
test.csv:
foo.bar1
example
devoluciones { "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo.bar1" : "example" }
En lugar de la salida deseada:
{ "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo: {"bar1" : "example"} }
El nombre del campo parece interpretarse como una cadena independientemente de su valor. Cosas como foo[bar1]
y foo: {bar1}
también se usan literalmente.
Solución
Esto no es compatible con la versión actual (v2.0) de MongoImport, pero debería ser pronto. Puede consultar el boleto JIRA aquí, programado para v2.1:
Hasta entonces, si puede traducir sus datos de CSV a JSON, entonces podría usar mongoimport --type json
para importar los datos anidados.
EDITAR:Esta característica se lanza ahora y está disponible en 2.8.0-rc0