มีวิธีใดในการถ่ายโอน mongo collection ในรูปแบบ json หรือไม่? ไม่ว่าจะเป็นบนเชลล์หรือใช้ไดรเวอร์ java ฉันกำลังมองหาสิ่งที่มีประสิทธิภาพดีที่สุด
มีวิธีใดในการถ่ายโอน mongo collection ในรูปแบบ json หรือไม่? ไม่ว่าจะเป็นบนเชลล์หรือใช้ไดรเวอร์ java ฉันกำลังมองหาสิ่งที่มีประสิทธิภาพดีที่สุด
คำตอบ:
Mongo มียูทิลิตี้ mongoexport (ดูเอกสาร)ซึ่งสามารถถ่ายโอนคอลเล็กชันได้ ยูทิลิตี้นี้ใช้ libmongoclient ดั้งเดิมและน่าจะเป็นวิธีที่เร็วที่สุด
mongoexport -d <database> -c <collection_name>
ยังเป็นประโยชน์:
-o
: เขียนผลลัพธ์ไปยังไฟล์มิฉะนั้นจะใช้เอาต์พุตมาตรฐาน ( เอกสาร )
--jsonArray
: สร้างเอกสาร json ที่ถูกต้องแทนที่จะเป็นวัตถุ json หนึ่งรายการต่อบรรทัด ( เอกสาร )
--pretty
: เอาต์พุต json ที่จัดรูปแบบ ( เอกสาร )
--pretty
แฟmongoexport -d mydatabase -c mycollection --pretty
mongoexport --host mongodb1.example.net --port 37017 --username user --password "pass" --collection contacts --db marketing --out mdb1-examplenet.json
--pretty
จะหายไปในเวอร์ชัน 2.6.10
ใช้ mongoexport / mongoimport เพื่อถ่ายโอนข้อมูล / เรียกคืนคอลเล็กชัน:
ส่งออกไฟล์ JSON :
mongoexport --db <database-name> --collection <collection-name> --out output.json
นำเข้าไฟล์ JSON :
mongoimport --db <database-name> --collection <collection-name> --file input.json
คำเตือน
mongoimport
และmongoexport
อย่าเก็บรักษาชนิดข้อมูล BSON ที่สมบูรณ์ทั้งหมดไว้อย่างน่าเชื่อถือเนื่องจาก JSON สามารถแสดงเฉพาะบางส่วนของประเภทที่ BSON สนับสนุน ด้วยเหตุนี้ข้อมูลที่ส่งออกหรือนำเข้าด้วยเครื่องมือเหล่านี้อาจสูญเสียการวัดความเที่ยงตรงบางส่วน
นอกจากนี้http://bsonspec.org/
BSON ได้รับการออกแบบให้เข้ารหัสและถอดรหัสได้อย่างรวดเร็ว ตัวอย่างเช่นจำนวนเต็มจะถูกจัดเก็บเป็นจำนวนเต็ม 32 (หรือ 64) บิตดังนั้นจึงไม่จำเป็นต้องแยกวิเคราะห์จากข้อความ ใช้พื้นที่มากกว่า JSON สำหรับจำนวนเต็มขนาดเล็ก แต่แยกวิเคราะห์ได้เร็วกว่ามาก
นอกเหนือจากความกะทัดรัดแล้ว BSON ยังเพิ่มชนิดข้อมูลเพิ่มเติมที่ไม่มีใน JSON โดยเฉพาะอย่างยิ่งประเภทข้อมูล BinData และ Date
mongoexport
/ mongoimport
การเดินทางรอบ?
นี่คือคำสั่งของฉันสำหรับการอ้างอิง:
mongoexport --db AppDB --collection files --pretty --out output.json
ใน Windows 7 (MongoDB 3.4) ต้องย้าย cmd ไปยังตำแหน่งที่mongod.exe
และmongo.exe
ไฟล์อยู่ =>
C:\MongoDB\Server\3.4\bin
มิฉะนั้นจะใช้งานไม่ได้โดยบอกว่าไม่มีmongoexport
คำสั่งreongnize
จากเอกสาร Mongo:
ยูทิลิตี้ mongoexport รับคอลเล็กชันและส่งออกไปยัง JSON หรือ CSV คุณสามารถระบุตัวกรองสำหรับแบบสอบถามหรือรายการเขตข้อมูลที่จะส่งออก
อ่านเพิ่มเติมที่นี่: http://www.mongodb.org/display/DOCS/mongoexport
หากคุณต้องการถ่ายโอนคอลเล็กชันทั้งหมดให้รันคำสั่งนี้:
mongodump -d {DB_NAME} -o /tmp
จะสร้างข้อมูลคอลเลกชันทั้งหมดในjson
และbson
ส่วนขยายลงใน/tmp/{DB_NAME}
ไดเร็กทอรี
mongodump
ส่งออกข้อมูลในBSON
รูปแบบ คำตอบอื่น ๆ เรียกได้อย่างถูกต้องว่าmongoexport
เป็นเครื่องมือที่เหมาะสม
mongoexport -d <database> -c <collection_name> --out <xxx.json> --pretty --host <host> --port <port> --username <user> --authenticationDatabase admin
คุณสามารถระบุhost
,port
,username
, เช่นนี้และฐานข้อมูลการตรวจสอบเริ่มต้นคือpassword
admin