Utilizzando mongoimport leggere CSV in struttura annidata?
-
26-10-2019 - |
Domanda
Ho un documento mongo con una struttura come: { "foo": { "bar1": "val1", "bar2": "val2"} }
Mi piacerebbe importare i miei dati da un file CSV utilizzando mongoimport --type csv --headerline [...]
Non sono sicuro di come formattare il nome del campo nella csv per affrontare la struttura annidata. Per esempio:
test.csv:
foo.bar1
example
rendimenti { "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo.bar1" : "example" }
invece dell'uscita desiderata:
{ "_id" : ObjectId("4e9d9d25c5d8708e1f51cdbc"), "foo: {"bar1" : "example"} }
Il nome del campo sembra essere interpretato come una stringa indipendentemente dal suo valore. Cose come foo[bar1]
e foo: {bar1}
sono utilizzati anche parola per parola.
Soluzione
Questa non è supportato nella versione attuale (v2.0) di mongoimport, ma dovrebbe essere in arrivo. È possibile controllare il biglietto JIRA qui, prevista per v2.1:
Fino ad allora, se è possibile tradurre i dati CSV per JSON allora si potrebbe utilizzare mongoimport --type json
per importare i dati nidificato.
Modifica
Questa caratteristica viene rilasciato ora, e disponibile da 2.8.0-rc0