Jadi saya tidak tahu banyak tentang MongoDB
. Saya telah RoboMongo
menggunakan yang saya sambungkan ke MongoDB. Yang perlu saya lakukan adalah ini - ada koleksi di MongoDB itu. Saya ingin mengekspor data dari koleksi itu sehingga saya bisa menyimpannya ke dalam sebuah file.
Saya menggunakan antarmuka untuk membuka data dari koleksi sebagai teks dan melakukan Ctrl+ Adan ditempelkan ke dalam file teks. Namun, saya menemukan bahwa tidak semua data disalin dan juga ada banyak komentar di data teks yang secara alami merusak JSON.
Saya ingin tahu apakah RoboMongo memiliki Export As JSON
fasilitas sehingga saya dapat melakukan ekspor bersih.
Setiap petunjuk dihargai!
mongoexport
alat baris perintah standar .mongoexport --uri='mongodb://[email protected]:27017/marketing' --collection=contacts --out=contacts.json
Jawaban:
Anda dapat menggunakan
tojson
untuk mengonversi setiap catatan ke JSON dalam skrip shell MongoDB .Jalankan skrip ini di RoboMongo:
Ini mencetak semua hasil sebagai larik mirip JSON.
Hasilnya sebenarnya bukan JSON! Beberapa tipe, seperti tanggal dan ID objek, dicetak sebagai pemanggilan fungsi JavaScript, mis
ISODate("2016-03-03T12:15:49.996Z")
. , .Mungkin tidak terlalu efisien untuk kumpulan hasil yang besar, tetapi Anda bisa membatasi kueri. Atau, Anda bisa menggunakan
mongoexport
.sumber
tojson(db.getCollection(...).find(...)["_batch"])
untuk mengeluarkan keseluruhan batch saat ini yang diperoleh dari server.["_batch"]
? Bisakah Anda memberi contoh bagaimana menggunakan ini? Saya mencoba ini dengan Robo 3T 1.2.1, tetapi hanya mengatakan "Skrip berhasil dieksekusi, tetapi tidak ada hasil untuk ditampilkan".tojson(db.getCollection(...).find(...).toArray())
.Cara yang cepat dan kotor: Cukup tulis kueri Anda sebagai
db.getCollection('collection').find({}).toArray()
dan klik kananCopy JSON
. Tempel data di editor pilihan Anda.sumber
Fungsionalitas shell Robomongo akan menyelesaikan masalah. Dalam kasus saya, saya membutuhkan beberapa kolom sebagai format CSV.
sumber
Ada beberapa GUI MongoDB di luar sana, beberapa di antaranya memiliki dukungan bawaan untuk mengekspor data. Anda akan menemukan daftar lengkap GUI MongoDB di http://mongodb-tools.com
Anda telah bertanya tentang mengekspor hasil kueri Anda, dan bukan tentang mengekspor seluruh koleksi. Berikan 3T MongoChef MongoDB GUI dicoba, alat ini memiliki dukungan untuk kasus penggunaan khusus Anda.
sumber
Anda mengatakan "ekspor ke file" seperti di spreadsheet? suka dengan .csv?
IMO ini adalah cara termudah untuk melakukan ini di Robo 3T (sebelumnya robomongo):
Di kanan atas GUI Robo 3T ada tombol "Lihat Hasil dalam mode teks", klik dan salin semuanya
tempel semuanya ke situs web ini: https://json-csv.com/
klik tombol unduh dan sekarang Anda memilikinya di spreadsheet.
Semoga ini membantu seseorang, karena saya berharap Robo 3T memiliki kemampuan ekspor
sumber
Jangan menjalankan perintah ini pada shell, masukkan skrip ini pada prompt perintah dengan nama database Anda, nama koleksi, dan nama file, semua menggantikan placeholder ..
Ini bekerja untuk saya.
sumber
Saya rasa robomongo tidak memiliki fitur seperti itu. Jadi sebaiknya Anda menggunakan fungsi mongodb sebagai mongoexport untuk Koleksi tertentu.
Tetapi jika Anda mencari solusi cadangan lebih baik digunakan
sumber
Memperluas jawaban Anish, saya menginginkan sesuatu yang dapat saya terapkan pada kueri apa pun untuk secara otomatis menampilkan semua bidang vs. harus menentukannya dalam pernyataan cetak. Ini mungkin dapat disederhanakan tetapi ini adalah sesuatu yang cepat & kotor yang bekerja dengan baik:
sumber
Jika Anda ingin menggunakan mongoimport , Anda ingin mengekspor dengan cara ini:
sumber
Menggunakan skrip shell robomongo:
Menggunakan perintah ekspor dan impor mongodb
Anda dapat menambahkan
--jsonArray
parameter / bendera kemongoexport
perintah Anda , ini mengekspor hasilnya sebagai larik json tunggal.Kemudian tentukan
--jsonArray
lagi bendera tersebut saat mengimpor.Atau hapus tanda kurung siku awal dan akhir [] di file, lalu file yang dimodifikasi & diekspor akan diimpor dengan
mongoimport
perintah tanpa--jsonArray
bendera.Lebih lanjut tentang Ekspor di sini: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Impor di sini: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
sumber
Saya mengalami masalah yang sama, dan menjalankan skrip di robomongo (Robo 3T 1.1.1) juga tidak memungkinkan untuk menyalin nilai dan tidak ada opsi ekspor juga. Cara terbaik yang bisa saya lakukan adalah dengan menggunakan mongoexport, jika mongodb diinstal di lokal Anda, Anda dapat menggunakan mongoexport untuk terhubung ke database di server mana pun dan mengekstrak data
Untuk menyambung ke Data di server jarak jauh, dan file keluaran csv, jalankan mongoexport berikut di baris perintah Anda
fieldFile: membantu mengekstrak kolom yang diinginkan, contoh: isi dari field.txt bisa berupa:
untuk hanya mengekstrak nilai kolom 'userId'
Data di server jarak jauh, file keluaran json:
ini mengekstrak semua bidang ke dalam file json
data di localhost (mongodb harus berjalan di localhost)
Referensi: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
sumber
Larutan:
Di mana:
database ->
nama kumpulan server tiruan ->
nama file keluaran api_defs -> childChoreRequest.json
sumber
Perpanjangan jawaban Florian Winter bagi orang-orang yang ingin menghasilkan kueri siap untuk dieksekusi.
drop
daninsertMany
kueri menggunakancursor
:Outputnya akan seperti:
sumber
sumber