แนวคิดบางอย่างของ MongoDB
ต่อไปนี้เป็นการเปรียบเทียบระหว่าง MongoDB และ MySQL
mysqlmongoDB
ฐานข้อมูล (ฐานข้อมูล) DB (ฐานข้อมูล)
ตาราง (ตาราง) คอลเลกชัน (คอลเลกชัน)
เอกสารแถว
ฟิลด์คอลัมน์ (คอลัมน์) (ฟิลด์)
คีย์หลัก (ระบุคีย์หลัก) "_id": ObjectId ("******") สร้างคีย์หลักในตัวโดยอัตโนมัติ
รูปแบบข้อมูลของ MySQL มีดังนี้
ข้อมูลเดียวกันนั้นคล้ายกับคู่คีย์ JSON ใน MongoDB เรียกว่า BSON ดังนี้
Crud of MongoDB
หลังจากการติดตั้งใน Windows สำเร็จให้ใช้คำสั่ง Mongod เพื่อเริ่มบริการและใช้คำสั่ง Mongo เพื่อเชื่อมต่อกับไลบรารีทดสอบตามค่าเริ่มต้น
1. สร้างคอลเลกชัน
สร้างคอลเลกชันผู้ใช้: db.createCollection ("ผู้ใช้") // ไม่จำเป็นต้องกำหนดฟิลด์
2. แทรกบันทึกด้วยชื่อ = wangxu, อายุ = 27: db.user.insert ({"ชื่อ": "wangxu", "อายุ": 27})
3. สอบถามสอบถามทั้งหมด: db.user.find ()
สอบถามบันทึกชื่อ = wangxu: db.user.find ({"ชื่อ": "wangxu"})
4. อัปเดตอายุการบันทึกชื่อ = Wangxu เป็น 30: db.user.update ({ชื่อ: "wangxu"}, {"$ set": {"อายุ": 30}})
5. ลบบันทึกด้วยชื่อ = wangxu: db.user.remove ({"ชื่อ": "wangxu"})
ลบทั้งหมด: db.user.remove ()
6. ลบคอลเลกชันและลบคอลเลกชันผู้ใช้: db.user.drop ()
Java เรียก MongoDB
หลังจากแนะนำแพ็คเกจไดรเวอร์ Java ของ MongoDB รหัสทดสอบมีดังนี้:
แพ็คเกจ com.wx.test; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า org.bson.document; นำเข้า com.mongoDb.mongoclient; นำเข้า com.mongodb.client.finditerable; com.mongodb.client.mongodatabase; นำเข้า com.mongodb.client.model.filters;/** * ทดสอบจุดทดสอบ mongoDB: เพิ่ม, สอบถาม, อัปเดต, ลบ * * @author wangxu * @date 2016-3-27 */การทดสอบระดับสาธารณะ ชื่อผู้ใช้และรหัสผ่านโดยค่าเริ่มต้น mongoclient = mongoclient ใหม่ ("localhost", 27017); // รับไลบรารีทดสอบ mongodatabase db = mongoclient.getDatabase ("ทดสอบ"); // สร้างคอลเลกชัน db.createCollection ("ผู้ใช้"); // รับคอลเลกชันคอลเลกชัน Mongocollection = db.getCollection ("ผู้ใช้"); // แทรกเอกสาร (สนับสนุนหลายบรรทัด) เอกสารเอกสาร = เอกสารใหม่ ("ชื่อ", "wangxu"). ผนวก ("อายุ", "27"); เอกสารเอกสาร 2 = เอกสารใหม่ ("ชื่อ", "wangxu_java"). ผนวก ("อายุ", "27"); รายการ <Ocporive> เอกสาร = arrayList ใหม่ <> (); Documents.add (เอกสาร); Documents.add (Document2); collection.insertmany (เอกสาร); // อัปเดตอายุของ Wangxu เป็น 30 collection.updatemany (filters.eq ("ชื่อ", "wangxu"), เอกสารใหม่ ("$ set", เอกสารใหม่ ("อายุ", 30)); // สอบถามเอกสาร finditerable <conage> finditerable = collect.find (); (Mongocursor.hasnext ()) {เอกสารเอกสาร = Mongocursor.next ();คำถามเกี่ยวกับแพ็คเกจไดรเวอร์ Java
Mongoclient mongoclient = new Mongoclient ("โดเมนไม่มีอยู่", 27017); // สร้างการเชื่อมต่อเมื่อฉันบันทึกรหัสข้างต้นฉันพบว่าไม่จำเป็นต้องจัดการข้อยกเว้น ตอนแรกฉันคิดว่าข้อยกเว้นได้รับการออกแบบให้เป็น "ข้อยกเว้นที่ไม่ได้ตรวจสอบ" และจะถูกโยนเมื่อวิ่ง ในที่สุดการทดสอบพบว่าจะไม่มีข้อยกเว้นใด ๆ เลย ข้อยกเว้นจะถูกโยนลงในระหว่างการดำเนินการ CRUD ที่ตามมา แต่พวกเขาเกือบทั้งหมดเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ โดยส่วนตัวแล้วฉันรู้สึกว่าการออกแบบนี้ไม่สอดคล้องกับกลไกการจำแนกประเภทข้อยกเว้นของ Java หรือไม่?