Я можу використовувати mongoimport
імпортувати дані CSV в неметеорну базу даних mongodb, але я не можу зрозуміти, як імпортувати CSV у свою базу даних програм метеора.
Я дізнався, як запустити оболонку mongo для мого додатка meteor (meteor mongo
) але я не можу бігати mongoimport
з оболонки.
Документи mongodb для mongoimport
каже
У цьому прикладі монгоімпорт імпортує CSVвідформатовані дані в /opt/backups/contacts.csv до контактів колекції в базі даних користувачів в екземплярі MongoDB, що працює на порту localhost, що має номер 27017.
mongoimport - користувачі DB - колекції контактів - тип csv - файл /opt/backups/contacts.csv
Але коли я біжу mongod
, запустити мій додаток і запустити mongoimport
це імпорт до мого test
базу даних, а не мою базу даних додатків.
Я читав цей коментар до публікації stackoverflow:
Використовуйте mongoexport для скидання колекційокремо, потім mongoimport імпортувати файли в db з назвою meteor в екземплярі meteor mongodb. Екземпляр монго метеора працює на порту 3002 з bind_address 127.0.0.1, а файли даних знаходяться у підкаталозі проекту meteor .meteor / local / db
Але я не розумію, як підключитися до цього примірника або як націлити його на mongoimport
команда
Відповіді:
23 за відповідь № 1Схоже, я щойно відповів на ваш коментар Рахульс чудова відповідь. У будь-якому випадку завантажте mongodb з mongodb.org для вашої ОС (або менеджера пакунків, як, наприклад, macports) та використовуйте інструмент, який надається у папці bin. mongoimport
не команда в оболонці mongo, це виконуваний файл, який працює окремо.
Також не забудьте поставити порт (зазвичай 3001 якщо ви запускаєте свій екземпляр метеора в 3000), також db зазвичай метеор & ні користувачів коли ти запустиш його
mongoimport -h localhost:3001 --db meteor --collection contacts --type csv --file /opt/backups/contacts.csv
8 для відповіді № 2
ПРИМІТКА. Вищеописаний метод НЕ працював на порту 3002 для мене, але він DID працює на порту 3001.
Щоб імпортувати зовнішній файл TSV у db метеора, язапустив додаток метеора, що потребує даних TSV. Це також запускає послугу meteor mongodb (в моєму випадку на хості: localhost: 3001), потім я відкрив термінал в OSX і через термінал, перейшов до папки бін пакета mongodb, яку я завантажив раніше для отримання бінарної, "mongoimport". Опинившись у папці bin пакета mongodb, тоді в командному рядку я набрав наступне (деякі параметри комутатора будуть різними ... але --host, --localhost та --db switch / значення повинні бути такими, як показано):
$ ./mongoimport --host localhost:3001 --db meteor --collection datarefs --type tsv --drop --headerline --file /PathToFile/DataRefs.tsv
Після натискання клавіші enter, монгоімпорт відлуння "dуспішний імпорт в терміналі. Як тільки це було зроблено, я міг перейти до програми meteor через термінал і запустити meteor mongo: $ meteor mongo .... і побачити імпортовану колекцію "datarefs" у метеорологічному режимі для цього додатка.
$ meteor mongo
...
...
meteor:PRIMARY> show collections
datarefs
system.indexes
meteor:PRIMARY>
4 для відповіді № 3
Спочатку створіть колекцію в такому додатку метеора
Students = new Meteor.Collection("students");
Потім додайте деяке фіктивне значення, щоб переконатися, що метеор ініціалізував збір
Students.insert({"name":"first"});
Наприклад, у деяких подіях клацання. Для перевірки використовуйте це
meteor:PRIMARY> show collections
students
system.indexes
Потім імпортуйте.
mongoimport -h localhost:3001 -d meteor -c students < students.json
Метеор якось не впізнає нових імпортнихколекції вам потрібно видалити всі, додайте значення манекена, потім знову імпортуйте або створіть нове і ініціалізуйте його з манекеном, а потім імпортуйте.
Дякую Акшату та Тому Кайлеру
0 для відповіді № 4
Невеликий сценарій (шаблон) для запуску mongoimport на xxx.meteor.com
#!/ бін / ш # Сценарій для імпорту csvfile в метеорний додаток, розгорнутий для безкоштовного хостингу meteor.com. # Переконайтесь, що ваші версії монго відповідають версій mongo.com. # На січень 2016 року здається, що це 3.x щось. Перевірено з монгоімпорт 3.12. якщо [$ # -ек. 0] потім echo "використання: $ 0 xxx.meteor.com колекція filename.csv" вихід 1 фі URL = $ 1 КОЛЕКЦІЯ = $ 2 ФАЙЛ = 3 $ echo Підключення до $ URL, будьте готові до .... 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 --тип csv --headerline --колекція $ COLLECTION --файл $ FILE
0 для відповіді № 5
Тепер я користуюсь Монгочеф для переміщення даних між базами даних. Це дуже просто - ви просто підключаєтесь до кожної бази даних (як правило, локальної та віддаленої db), тоді ви можете копіювати та вставляти документи в колекції. Набагато простіше, ніж підхід командного рядка.