Mongodb'da .bson dosya biçimi nasıl alınır


162

mongodumpKomut kullanarak sunucuda veritabanını ihraç ettik ve döküm .bsondosyasında saklanır . mongorestoreKomut kullanarak yerel sunucuma aktarmam gerekiyor. Ancak işe yaramıyor. Doğru mongorestorekomut nedir ve diğeri tools to restore dbnedir?

Yanıtlar:


342

Bir .bson dosyasını içe aktarmak çok basittir :

mongorestore -d db_name -c collection_name /path/file.bson

Yalnızca tek bir koleksiyon için gerekliyse.

mongorestore --drop -d db_name -c collection_name /path/file.bson

Dışa aktarılan klasörün tamamını geri yüklemek için mongodump:

mongorestore -d db_name /path/

4
mongoexportYalnızca tek koleksiyonları dışa aktarıyorsanız, dışa aktarılan bson dosyası için de yararlıdır . mongoimportbana "geçersiz karakter" hataları veriyordu. Teşekkürler!
divillysausages

4
Sözdizimi Hatası: eksik; açıklamadan önce @ (kabuk): 1: 16
151291

3
Belki bu komutların mongo konsolundan değil komut isteminden çalıştırılacağını ekleyebilirsiniz. Bu yeni kullanıcılara yardımcı olur
Düşler

2
Bu cevaba ekliyoruz. Bir bson dosyasını uzaktan geri yüklemek isteyenler için. Mongorestore -h [host] -u [user] -p [pass] -d [database] -c [collection] [bson file]
Jpepper

1
Teşekkürler tar.gz'den çıktıktan sonra tüm klasörüm için çalıştı
Braham Dev Yadav

63

mongorestoretarafından atılan bson dosyalarını içe aktarmak için kullanılacak araçtır mongodump.

Gönderen docs :

mongorestore çıktıyı mongodump'tan alır ve geri yükler.

Misal:

# On the server run dump, it will create 2 files per collection
# in ./dump directory:
# ./dump/my-collection.bson
# ./dump/my-collection.metadata.json
mongodump -h 127.0.0.1 -d my-db -c my-collection

# Locally, copy this structure and run restore.
# All collections from ./dump directory are picked up.
scp user@server:~/dump/**/* ./
mongorestore -h 127.0.0.1 -d my-db

dump/dbName/collectionName.bsonKlasör yapısını korumam gerekir mi? Kullandım mongodump, ancak şimdi mongorestoreuzak bir Linux kutusunda kullanarak içe aktarmak istiyorum .
Kevin Meredith

@Kevin: Dürüst olmak gerekirse emin değilim, ama bunu varsayırım. Dosyaları klasör yapısı ile birlikte aktarmak için bir FTP programı kullanın?
Cameron

5
Başarısız bir "dökümü" klasör adı kullanarak bir mongo db ithal edebildi:mongorestore --collection people --db accounts myDump/accounts/people.bson
Kevin Meredith

35
bsondump collection.bson > collection.json

ve sonra

mongoimport -d <dbname> -c <collection> < collection.json

7
Mongodb en ilgili uyarıyı Not ithalat-ihracat belgelerine :mongoimport and mongoexport do not reliably preserve all rich BSON data types because JSON can only represent a subset of the types supported by BSON. As a result, data exported or imported with these tools may lose some measure of fidelity.
LucasB

Evet. Bu Çince / Japonca karakterleri karıştırıyor.
user2619824

10

Komut satırından aşağıdakileri çalıştırın ve Mongo bin dizininde olmalısınız.

mongorestore -d db_name -c collection_name path/file.bson


9

Bu mongorestore komutunu Mongo Shell'de değil cmd üzerinden çalıştırmalısınız ... Aşağıdaki komutu inceleyin ...

Bu komutu cmd'de çalıştırın (Mongo kabuğunda değil)

>path\to\mongorestore.exe -d dbname -c collection_name path\to\same\collection.bson

İşte mongodb'un bin klasörünün path\to\mongorestore.exeyolu mongorestore.exe. dbname, veritabanının adıdır. collection_namecollection.bson dosyasının adıdır. path\to\same\collection.bsonbu koleksiyona giden yoldur.

Şimdi mongo kabuğundan veritabanının oluşturulup oluşturulmadığını doğrulayabilirsiniz (yoksa, aynı ada sahip veritabanı koleksiyonla oluşturulacaktır).



2

Uzaktan erişiminiz varsa bunu yapabilirsiniz

bson için:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people "/home/${USER}/people.bson"

.gz (gzip) biçiminde sıkıştırılmış bson için:

mongorestore --host m2.mongodb.net --port 27016 --ssl --username $user --password $password --authenticationDatabase $authdb -d test -c people --gzip --dir "/home/${USER}/people.bson.gz"

1

mongorestore -d db_adı / yol /

bu sorguyu mongoDb'nin bin klasöründe çalıştırdığınızdan emin olun

C: \ Program Dosyaları \ MongoDB \ Server \ 4.2 \ bin -

sonra yukarıdaki komutu çalıştırın.


0

Bunu kullandım:

mongorestore -d databasename -c file.bson fullpath/file.bson

1. özelliklerden dosya yolunu ve dosya adını kopyalayın (tüm bson dosyalarını farklı bir klasöre koymaya çalışın), 2. bunu yalnızca dosya adını değiştirerek tekrar tekrar kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.