Próbuję zaimportować plik CSV z danymi kontaktowymi:
Name,Address,City,State,ZIP
Jane Doe,123 Main St,Whereverville,CA,90210
John Doe,555 Broadway Ave,New York,NY,10010
Uruchomienie tego nie wydaje się dodawać żadnych dokumentów do bazy danych:
$ mongoimport -d mydb -c things --type csv --file locations.csv --headerline
Trace mówi imported 1 objects
, ale odpalenie powłoki Mongo i uruchomienie db.things.find()
nie pokazuje żadnych nowych dokumentów.
czego mi brakuje?
use mydb
wcześniejdb.things.find()
?Odpowiedzi:
Twój przykład pracował dla mnie z MongoDB 1.6.3 i 1.7.3. Przykład poniżej dotyczył wersji 1.7.3. Czy używasz starszej wersji MongoDB?
źródło
mongoimport -d db_name -c collection_name --type csv --file filename.csv --headerline --host hostname:portnumber --authenticationDatabase admin --username 'iamauser' --password 'pwd123'
Byłem zakłopotany podobnym problemem, gdy mongoimport nie dał mi błędu, ale zgłosiłbym importowanie 0 rekordów. Zapisałem plik, który nie działał w wersji OSX Excel dla komputerów Mac 2011, używając domyślnego formatu „Zapisz jako ..” „xls as csv” bez szczególnego określenia formatu „Windows Comma Separated (.csv)”. Po przeszukaniu tej witryny i wypróbowaniu formatu „Zapisz jako ponownie przy użyciu systemu Windows rozdzielanego przecinkami przecinkowymi (.csv)” mongoimport działał dobrze. Myślę, że mongoimport oczekuje znaku nowej linii w każdej linii, a domyślny eksport csv dla Mac Excel 2011 nie zapewnił tego znak na końcu każdej linii.
źródło
Musimy wykonać następujące polecenie:
Aby uzyskać więcej informacji: mongoimport
źródło
najprawdopodobniej będziesz musiał się uwierzytelnić, jeśli pracujesz w środowisku produkcyjnym. Możesz użyć czegoś takiego do uwierzytelnienia na właściwej bazie danych przy użyciu odpowiednich poświadczeń.
źródło
Sprawdź, czy na końcu pliku jest pusty wiersz, w przeciwnym razie ostatni wiersz zostanie zignorowany w niektórych wersjach mongoimportu
źródło
Używam tego w powłoce mongoimport
typ może wybrać csv / tsv / json Ale może używać tylko csv / tsv
--headerline
Możesz przeczytać więcej na oficjalnym dokumencie .
źródło
Robert Stewart już odpowiedział na pytanie, jak importować z Mongoimport.
Sugeruję prosty sposób eleganckiego importu CSV za pomocą narzędzia 3T MongoChef Tool (wersja 3.2+). Może pomóc komuś w przyszłości.
Zobacz, jak zaimportować wideo
źródło
Najpierw powinieneś wyjść z
mongo
powłoki, a następnie wykonaćmongoimport
polecenie w następujący sposób:źródło
Odpowiedzi Roberta Stewarta są świetne.
Chciałbym dodać, że możesz także wpisać swoje pola za pomocą --columHaveTypes i --field w następujący sposób:
(Uważaj, aby nie mieć spacji po przecinku między polami)
W przypadku innych typów zobacz dokument tutaj: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
źródło
W przypadku wersji 3.4 użyj następującej składni:
Po 3 dniach w końcu sam to zrobiłem. Dziękujemy wszystkim użytkownikom, którzy mnie wspierali.
źródło
Podczas próby zaimportowania pliku CSV wystąpił błąd. Co zrobiłem Najpierw zmieniłem nazwy kolumn nagłówka wielką literą i usunąłem „-” i dodałem „_” w razie potrzeby. Następnie wpisz poniżej polecenie importowania CSV do mongo
źródło
C: \ wamp \ mongodb \ bin> mongoexport --db proj_mmm - oferty kolekcji --csv --fieldFile offerings_fields.txt --out offerings.csv
źródło
Po prostu użyj tego po wykonaniu mongoimportu
Zwróci liczbę zaimportowanych obiektów
zwróci liczbę obiektów.
źródło
posługiwać się :
źródło
mongoimport -d test -c test --typ csv - plik PróbkaCSVFile_119kb.csv - nagłówek
sprawdź dane kolekcji: -
źródło
źródło
O dziwo nikt nie wspomniał o
--uri
fladze:źródło
W naszym przypadku musieliśmy dodać
host
parametr, aby działałźródło
Moim wymaganiem było zaimportowanie
.csv (with no headline)
zdalnejMongoDB
instancji. Dlamongoimport v3.0.7
poniższego polecenia działało dla mnie:Na przykład:
Poniżej zrzut ekranu, jak to wygląda po imporcie:
gdzie
name
iemail
są kolumny w.csv
pliku.źródło
Biorąc pod uwagę
.csv
plik, który mam, który ma tylko jedną kolumnę bez nagłówka , poniższe polecenie działało dla mnie:gdzie nazwa-pola odnosi się do nazwy nagłówka kolumny w
.csv
pliku.źródło
Skopiuj plik .csv do katalogu / usr / local / bin lub innego folderu, w którym znajduje się mondodb
źródło