Saya memiliki file json yang terdiri dari sekitar 2000 catatan. Setiap catatan yang akan terkait dengan dokumen dalam database mongo diformat sebagai berikut:
{jobID:"2597401",
account:"XXXXX",
user:"YYYYY",
pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}},
startEpoch:"1338497979",
runTime:"1022",
execType:"user:binary",
exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64",
numNodes:"4",
sha1:"5a79879235aa31b6a46e73b43879428e2a175db5",
execEpoch:1336766742,
execModify: new Date("Fri May 11 15:05:42 2012"),
startTime: new Date("Thu May 31 15:59:39 2012"),
numCores:"64",
sizeT:{bss:"1881400168",text:"239574",data:"22504"}},
Setiap catatan berada pada satu baris dalam file JSON, dan satu-satunya jeda baris adalah di akhir setiap catatan. Oleh karena itu, setiap baris dalam dokumen dimulai dengan "{jobID:" ... Saya mencoba mengimpor ini ke database mongo menggunakan perintah berikut:
mongoimport --db dbName --collection collectionName --file fileName.json
Namun, saya mendapatkan kesalahan berikut:
Sat Mar 2 01:26:12 Assertion: 10340:Failure parsing JSON string near: ,execModif
0x10059f12b 0x100562d5c 0x100562e9c 0x10025eb98 0x10000e643 0x100010b60 0x10055c4cc 0x1000014b7
0x100001454
0 mongoimport 0x000000010059f12b _ZN5mongo15printStackTraceERSo + 43
1 mongoimport 0x0000000100562d5c _ZN5mongo11msgassertedEiPKc + 204
2 mongoimport 0x0000000100562e9c _ZN5mongo11msgassertedEiRKSs + 12
3 mongoimport 0x000000010025eb98 _ZN5mongo8fromjsonEPKcPi + 1576
4 mongoimport 0x000000010000e643
_ZN6Import8parseRowEPSiRN5mongo7BSONObjERi + 2739
5 mongoimport 0x0000000100010b60 _ZN6Import3runEv + 7376
6 mongoimport 0x000000010055c4cc _ZN5mongo4Tool4mainEiPPc + 5436
7 mongoimport 0x00000001000014b7 main + 55
8 mongoimport 0x0000000100001454 start + 52
Sat Mar 2 01:26:12 exception:BSON representation of supplied JSON is too large: Failure parsing
JSON string near: ,execModif
Sat Mar 2 01:26:12
Sat Mar 2 01:26:12 imported 0 objects
Sat Mar 2 01:26:12 ERROR: encountered 1941 errors
Saya tidak tahu apa masalahnya. Adakah yang bisa merekomendasikan solusi?
json
mongodb
import
mongoimport
amber4478
sumber
sumber
--jsonArray
menjadi tiketnya, ya?mongoimport -d <database> -c <collection> --jsonArray -f <filename>.json
.mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray -u ser -p password
authenticationDatabase
sebagaimana disebutkan dalam jawaban stackoverflow.com/a/58067928/6791222 .coba ini,
Contoh,
Masalahnya adalah karena format tanggal Anda.
Saya menggunakan JSON yang sama dengan tanggal modifikasi seperti di bawah ini dan itu berhasil
semoga ini membantu
sumber
""
sekitar.json
, jika mengandung nama folder memiliki spasi di dalamnya. Dijawab oleh Abhi di bawah Untuk Misalnya Ini tidak akan berfungsi, perlu menambahkan""
ke lokasi file json untuk mengimpornya.D:\>mongoimport --db testimport --collection small_zip < D:\Dev\test test\small_zips.json The system cannot find the file specified.
Ini berfungsiD:\>mongoimport --db testimport --collection small_zip < "D:\Dev\test test\small_zips.json" 2016-04-17T18:32:34.328+0800 connected to: localhost 2016-04-17T18:32:34.610+0800 imported 200 documents
Menggunakan mongoimport, Anda dapat mencapai hal yang sama
dimana,
--drop
drop koleksi jika sudah ada.sumber
menghibur:
sumber
Saya telah menggunakan perintah di bawah ini untuk mengekspor DB
dan perintah di bawah ini berfungsi untuk saya mengimpor DB
sumber
Sintaks Anda muncul sepenuhnya benar di:
Pastikan Anda berada di folder yang benar atau berikan path lengkap.
sumber
Jalankan perintah impor di terminal lain. (tidak di dalam kulit mongo.)
sumber
Di windows Anda dapat menggunakan Command Prompcmd Anda
cmd
, di Ubuntu Anda dapat menggunakan Andaterminal
dengan mengetikkan perintah berikut:kemudian ketika Anda membuka shell mongo Anda, Anda akan menemukan untuk memeriksa database_name Anda saat menjalankan perintah ini:
sumber
Perintah ini berfungsi di mana tidak ada koleksi yang ditentukan.
Mongo shell setelah menjalankan perintah
sumber
Saya mencoba sesuatu seperti ini dan ternyata berfungsi:
sumber
Ini berfungsi dengan saya ketika db dengan usrname dan kata sandi
db tanpa kata sandi nama pengguna, harap hapus
-u my_user -p my_pass
Sampel saya json
sumber
Larutan:-
Contoh:-
Tempatkan file Anda di folder admin: -
Jalankan perintah ini di teminal Anda: -
Keluaran:-
Untuk tautan lainnya
sumber
mongoimport --jsonArray --db dbname - collection collectionName - file FilePath
contoh mongoimport --jsonArray --db learnmongo --collection persons --file C: \ persons.json
sumber
Jika Anda mencoba untuk mengekspor koleksi tes ini:
dengan mongoexport (tanggal pertama dibuat dengan
Date(...)
dan yang kedua dibuat dengannew Date(...)
(jika penggunaanISODate(...)
akan sama dengan di baris kedua)) sehingga output mongoexport akan terlihat seperti ini:Jadi Anda harus menggunakan notasi yang sama, karena JSON yang ketat tidak memiliki tipe
Date( <date> )
.JSON Anda juga tidak valid: semua nama bidang harus dilampirkan dalam tanda kutip ganda, tetapi mongoimport berfungsi dengan baik tanpa mereka.
Anda dapat menemukan informasi tambahan dalam dokumentasi mongodb dan di sini .
sumber
sizeT:{data: "1949..."}}
Agak terlambat untuk jawaban yang mungkin, mungkin bisa membantu orang baru. Jika Anda memiliki beberapa instance database:
Dengan asumsi kredensial diperlukan, jika tidak hapus opsi ini.
sumber
Jumlah jawaban telah diberikan meskipun saya ingin memberikan perintah saya. Dulu saya sering. Mungkin membantu seseorang.
sumber