/ / ¿Cómo usar mongoimport con mi base de datos de aplicaciones de meteoritos? - mongodb, meteoro

¿Cómo usar mongoimport con mi base de datos de aplicaciones de meteoritos? - mongodb, meteoro

Soy capaz de usar mongoimport para importar datos CSV a una base de datos mongodb que no sea meteorito, pero no puedo averiguar cómo importar un CSV a mi base de datos de la aplicación de meteoros.

Aprendí cómo ejecutar el shell mongo para mi aplicación de meteoros (meteor mongo) pero no puedo correr mongoimport de la cáscara.

Los documentos mongodb para mongoimport dice

En este ejemplo, mongoimport importa el csv.datos formateados en /opt/backups/contacts.csv en los contactos de la colección en la base de datos de usuarios en la instancia de MongoDB que se ejecuta en el puerto de host local numerado 27017.

mongoimport --db usuarios - contactos de recolección --tipo csv --file /opt/backups/contacts.csv

Pero cuando corro mongod, inicia mi aplicación de meteorito, y corre mongoimport importa a mi test base de datos, no mi base de datos de la aplicación.

Leí este comentario de stackoverflow post:

Usa mongoexport para volcar tus coleccionesindividualmente, luego mongoimport para importar los archivos en el db denominado meteor en la instancia de meteor mongodb. La instancia de meteor mongo se ejecuta en el puerto 3002 con bind_address 127.0.0.1, y los archivos de datos están en el subdirectorio del proyecto meteor.

Pero no entiendo cómo conectarme a esa instancia o cómo dirigirla con el mongoimport mando.

Respuestas

23 para la respuesta № 1

Parece que acabo de responder tu comentario en Rahul maravillosa respuesta. De todos modos, descargue mongodb de mongodb.org para su sistema operativo (o un administrador de paquetes como macports) y use la herramienta provista en la carpeta bin. mongoimport no es un comando en el shell mongo, es un ejecutable que se ejecuta por separado.

También no olvide poner el puerto en 3001 Si estás ejecutando tu instancia de meteorito en 3000), también la db suele ser meteorito y no usuarios cuando lo ejecutas

mongoimport -h localhost:3001 --db meteor --collection contacts --type csv --file /opt/backups/contacts.csv

8 para la respuesta № 2

NOTA: El método anterior NO funcionó en el puerto 3002 para mí, pero funcionó en el puerto 3001.

Para importar un archivo TSV externo en una base de datos meteorológica,comenzó la aplicación de meteoros necesitando los datos TSV. Esto también lanza el servicio meteor mongodb (en mi caso en host: localhost: 3001), luego abrí una terminal en OSX y, a través de la terminal, navegé a una carpeta bin del paquete mongodb, que descargué anteriormente para obtener el binario, "Mongoimport". Una vez en la carpeta bin del paquete mongodb, a continuación, en el símbolo del sistema, escribí lo siguiente a continuación (algunas opciones de cambio variarán ... pero --host, --localhost y --db switch / valores deben ser como se muestran):

$  ./mongoimport --host localhost:3001 --db meteor --collection datarefs --type tsv --drop --headerline --file /PathToFile/DataRefs.tsv

Después de pulsar enter, mongoimport echo "dImportación exitosa en el terminal. Una vez hecho esto, pude navegar a la aplicación de meteoros a través de la terminal y lanzar meteor mongo: $ meteor mongo ... y ver la colección importada, "datarefs" en la base de datos de meteoros para esta aplicación.

$  meteor mongo
...
...
meteor:PRIMARY> show collections
datarefs
system.indexes
meteor:PRIMARY>

4 para la respuesta № 3

Primero crea una colección en una aplicación de meteoros como esta.

Students = new Meteor.Collection("students");

A continuación, agregue un valor ficticio para asegurarse de que la colección inicializada por meteoros

Students.insert({"name":"first"}); En algún evento de clic, por ejemplo. Para comprobar usar esto

meteor:PRIMARY> show collections students system.indexes

Luego importa. mongoimport -h localhost:3001 -d meteor -c students < students.json De alguna manera el meteorito no reconoce nuevos importadoslas colecciones que necesita eliminarlas todas agregan un valor ficticio, luego importan nuevamente o crean uno nuevo, lo inicializan con un valor ficticio y luego importan. Puede haber un error de enlace porque las colecciones aparecen justo en minimongo.

Gracias a Akshat y Tom Kyler


0 para la respuesta № 4

Un pequeño script (plantilla) para ejecutar mongoimport a xxx.meteor.com


#!/ bin / sh  # Script para importar csvfile a la aplicación meteor implementada para el hospedaje gratuito de meteor.com. # Asegúrese de que sus versiones de mongo coincidan con las versiones de metor.com mongo. # Como enero de 2016 parece ser algo 3.x. Probado con mongoimport 3.12.  si [$ # -eq 0] entonces echo "uso: $ 0 xxx.meteor.com colección filename.csv" salida 1 fi  URL = $ 1 COLECCIÓN = $ 2 ARCHIVO = $ 3  echo Conectando a $ URL, por favor espere .... collection = $ COLLECTION file = $ FILE  PUPMS = `meteor mongo --url $ URL | sed "s / mongodb: /// -u /" | sed "s /: / -p /" | sed "s / @ / -h /" | sed "s /// -d /" `    Mongoimport -v $ PUPMS - tipo csv --headerline --collection $ COLLECTION --file $ FILE


0 para la respuesta № 5

Ahora uso mongochef para mover datos entre bases de datos. Es muy fácil: solo se conecta a cada base de datos (generalmente, bases de datos locales y remotas), luego puede copiar y pegar documentos en colecciones. Mucho más fácil que el enfoque de línea de comandos.