วิธีสืบค้นฐานข้อมูล NoSQL ใน Java

เผยแพร่แล้ว: 2022-11-23

ในช่วงไม่กี่ปีที่ผ่านมา ความนิยมของฐานข้อมูล NoSQL เติบโตขึ้นอย่างรวดเร็ว ฐานข้อมูลเหล่านี้มักจะปรับขนาดได้มากกว่าและทำงานด้วยได้ง่ายกว่าฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม อย่างไรก็ตาม การค้นหาอาจทำได้ยากขึ้น โดยเฉพาะอย่างยิ่งหากคุณไม่คุ้นเคยกับไวยากรณ์ Java เป็นภาษาโปรแกรมยอดนิยมที่มักใช้ในการพัฒนาเว็บแอปพลิเคชัน หากคุณกำลังทำงานกับข้อมูล NoSQL ใน Java คุณจะต้องใช้วิธีอื่นในการสืบค้นข้อมูลนอกเหนือจากที่คุณคุ้นเคยกับฐานข้อมูล SQL มีหลายวิธีในการเข้าถึงข้อมูล NoSQL ด้วย Java ที่พบมากที่สุดคือการใช้ไลบรารี เช่น Hibernate หรือ Spring Data ไลบรารีเหล่านี้แยกรายละเอียดของฐานข้อมูลพื้นฐานออกไป ทำให้ง่ายต่อการเขียนโค้ดที่สามารถพกพาข้ามแพลตฟอร์ม NoSQL ต่างๆ ได้ อีกทางเลือกหนึ่งคือการใช้ Java API ดั้งเดิมสำหรับฐานข้อมูล NoSQL ที่คุณกำลังใช้งานอยู่ วิธีการนี้ช่วยให้คุณควบคุมรายละเอียดของการโต้ตอบกับฐานข้อมูลได้มากขึ้น แต่อาจทำได้ยากกว่าในการเขียนโค้ด ไม่ว่าคุณจะเลือกแนวทางใด คุณจะต้องคุ้นเคยกับแนวคิดพื้นฐานของฐานข้อมูล NoSQL เพื่อให้สามารถสืบค้นได้อย่างมีประสิทธิภาพ ซึ่งรวมถึงการทำความเข้าใจวิธีการจัดระเบียบข้อมูลในฐานข้อมูล NoSQL และการรู้จักประเภทต่างๆ ของแบบสอบถามที่สามารถใช้ได้

NosDB มีความสามารถในการปรับขนาดได้มากและรวดเร็วมาก เป็นฐานข้อมูล NoSQL ที่ใช้ NET ซึ่งสามารถจัดเก็บข้อมูลที่ไม่มีโครงสร้างจำนวนมหาศาล ใช้กลยุทธ์การกระจายที่เสถียรเพื่อปกป้องความสมบูรณ์ของข้อมูล ในขณะเดียวกันก็จัดเตรียมระบบที่ทนทานต่อข้อผิดพลาดสำหรับผู้ใช้ตลอดเวลา NosDB ให้บริการไคลเอนต์ Java อย่างเป็นทางการนอกเหนือจากการใช้ Java API เพื่อเชื่อมต่อกับฐานข้อมูล เป้าหมายของบทความนี้คือการให้ข้อมูลเบื้องต้นสั้นๆ เกี่ยวกับ Javaja API ไคลเอนต์ JAVA ของ NosDB แบ่งออกเป็นสามประเภท: เอกสารจะต้องมีรหัสเพื่อให้สามารถดึงข้อมูลจากฐานข้อมูลได้

NosDB จะสร้างคีย์อัตโนมัติเมื่อไม่มีการกำหนดคีย์ในระหว่างขั้นตอนการแทรก และจะจัดเก็บไว้ ฐานข้อมูล NosDB สามารถเข้าถึงได้โดยใช้แบบสอบถามตามที่ บริษัท กล่าว เนื่องจาก NosDB รองรับอาร์เรย์เป็นค่าฟิลด์ คอลัมน์ในคอลเลกชันจึงสามารถมีหลายค่าแทนที่จะเป็นค่าเอกพจน์ในฐานข้อมูลแบบเดิม NosDB ได้ปรับปรุงโครงสร้าง SQL เพื่อตอบสนองต่อความยืดหยุ่นของข้อมูลที่เพิ่มขึ้นจากสคีมา JSON

OrientDB เป็นฐานข้อมูล NoSQL แบบโอเพ่นซอร์สที่รองรับโมเดลที่หลากหลาย รวมถึงกราฟ เอกสาร โมเดลคีย์/ค่าของวัตถุ และอื่นๆ รหัสคือ Java ซึ่งทำได้โดยใช้การเชื่อมต่อโดยตรงระหว่างบันทึกข้อมูลทั้งหมด เช่น กรณีของฐานข้อมูลกราฟ

Jdbc สามารถเชื่อมต่อกับ Nosql ได้หรือไม่

ถ่ายภาพโดย: https://programming.vip

ได้ JDBC สามารถเชื่อมต่อกับฐานข้อมูล NoSQL มีหลายวิธีในการทำเช่นนี้ แต่วิธีทั่วไปที่สุดคือการใช้ไดรเวอร์ JDBC ที่รองรับฐานข้อมูล NoSQL ที่คุณกำลังใช้ ตัวอย่างเช่น หากคุณใช้ MongoDB คุณสามารถใช้ ไดรเวอร์ MongoDB JDBC

เครื่องมืออัปโหลด Zoho Analytics เป็นยูทิลิตีแบบสแตนด์อโลนที่ดาวน์โหลดได้ ซึ่งคุณสามารถติดตั้งในสภาพแวดล้อมภายในเครื่องของคุณและใช้เพื่ออัปโหลดข้อมูลจากฐานข้อมูลภายในเครื่องของคุณหลังไฟร์วอลล์ ส่วนนี้จะอธิบายวิธีเชื่อมต่อเครื่องมืออัปโหลดเพื่อดึงข้อมูลจาก ฐานข้อมูล NoSQL ที่เข้ากันได้กับ JDBC ในเครื่อง/โฮสต์และนำเข้าไปยัง Zoho Analytics คุณต้องกำหนดการตั้งค่าเพื่อให้ฐานข้อมูล NoSQL สามารถเข้าถึงได้จากตำแหน่งในเครื่องหรือโฮสต์ของคุณ สามารถอัปโหลดข้อมูลได้โดยระบุจำนวนการค้นหาที่คุณต้องการ พารามิเตอร์เหล่านี้สามารถพบได้ในไฟล์ common_params.conf สามารถใช้บรรทัดคำสั่งของบรรทัดคำสั่งเพื่อเรียกใช้เครื่องมืออัปโหลด เครื่องมืออัปโหลดเป็นเครื่องมือที่คุณสามารถใช้เพื่อกำหนดเวลาการอัปโหลดข้อมูลจากฐานข้อมูลที่สนับสนุน JDBC ไปยัง Zoho Analytics เป็นประจำ

ความสามารถในการซิงค์ข้อมูลแอปพลิเคชันของคุณกับ Zoho analytics เป็นส่วนเสริมที่ยอดเยี่ยม ใน Linux และ Mac คุณสามารถกำหนดเวลากระบวนการย้ายข้อมูลด้วยคำสั่ง crontab คู่มือนี้จะอธิบายวิธีใช้ยูทิลิตี cron เพื่อตั้งเวลาอัปโหลดข้อมูลในช่วงเวลาที่กำหนด ใน Zoho Analytics สามารถใช้เครื่องมืออัปโหลดเพื่ออัปโหลดข้อมูลจากฐานข้อมูลที่โฮสต์ระยะไกล (Mongodb, Apache Cassandra , Apache Hadoop Hive) ผู้ใช้สามารถกำหนดจำนวนแถวที่จะส่งสำหรับแต่ละชุดโดยใช้พารามิเตอร์ LINES_TO_SEND ของไฟล์ common_params ในการอัปโหลดข้อมูลโดยใช้เครื่องมืออัปโหลด คุณสามารถเปลี่ยนชื่อคอลัมน์ในตาราง Zoho Analytics ตามข้อมูลในฐานข้อมูลท้องถิ่นของคุณ ในกรณีของรูปแบบวันที่แบบกำหนดเอง คุณต้องแปลงค่าวันที่เป็นรูปแบบที่จำเป็นในแบบสอบถาม SQL ของคุณ

รูปแบบวันที่ของข้อมูลที่อัปโหลดเป็น dd/mm/yyyyyyy HH:mm:ss ข้อความแสดงข้อผิดพลาดเครื่องมืออัปโหลดระบุว่าคุณไม่สามารถอัปโหลดไฟล์ที่มีขนาดใหญ่กว่า 50MB อาจเป็นเพราะการตั้งค่าพร็อกซีเซิร์ฟเวอร์ไม่ถูกต้อง หากต้องการอัปโหลดข้อมูลจำนวนมากขึ้น Zoho Analytics Upload Tool จะแบ่งข้อมูลออกเป็นชุดและอัปโหลด จำเป็นอย่างยิ่งที่ขนาดแบทช์ต้องไม่เกิน 20 MB หรือ 100,000 เร็กคอร์ดต่อแบทช์ ผู้ใช้สามารถมีเซสชันที่ใช้งานอยู่ได้เพียง 20 เซสชันต่อเดือนด้วยบริการ Zoho หากคุณถึงขีดจำกัดนี้ คุณต้องปิดเซสชันที่กำลังใช้งานอยู่ใน Zoho Analytics หากบัญชีของคุณโฮสต์อยู่ในศูนย์ข้อมูลของสหภาพยุโรป คุณต้องระบุพารามิเตอร์การรับรองความถูกต้องต่อไปนี้

ฐานข้อมูลเชิงเอกสาร เช่น MongoDB เก็บข้อมูลในคอลเลกชันและสามารถเข้าถึงได้ผ่านเว็บเบราว์เซอร์ เขตข้อมูลของเอกสารซึ่งเป็นคุณสมบัติระดับคอลเลกชันคือสิ่งที่ประกอบขึ้น ฟิลด์ในแอปพลิเคชันของคุณประกอบด้วยข้อมูลทุกประเภทที่คุณต้องการในฟิลด์ รวมถึงสตริง ตัวเลข และอาร์เรย์ เนื่องจากเอกสารไม่สามารถเปลี่ยนแปลงได้ จึงไม่สามารถทำการเปลี่ยนแปลงได้หลังจากสร้างเอกสารแล้ว
ในเมธอด MongoDB JDBC driver connect() วัตถุ MongoDBConnection จะถูกส่งกลับหลังจาก MongoDB JDBC เปิดการเชื่อมต่อซ็อกเก็ตกับเซิร์ฟเวอร์ MongoDB ขั้นตอนต่อไปคือการสร้างวัตถุ MongoDBQuery และสร้างวัตถุ MongoDBConnection ที่กำหนดคุณสมบัติการเชื่อมต่อ เมื่อวัตถุ MongoDBResultSet ส่งกลับจากแบบสอบถามวัตถุ MongoDBQuery จะเรียกว่าวัตถุ MongoDBResultSet ถัดไป คุณต้องใช้เมธอด next() ของวัตถุ MongoDBResultSet เพื่อขอรับเอกสารถัดไปจากเซิร์ฟเวอร์ MongoDB การรวบรวมฟิลด์เอกสารถัดไปจะแสดงในเมธอด GetFields() ของ MongoDBResultSet
หลังจากนั้น วิธีการปิดของวัตถุ MongoDBConnection จะถูกใช้เพื่อปิดการเชื่อมต่อซ็อกเก็ตของเซิร์ฟเวอร์ MongoDB java.io ถูกส่งคืนเป็นเอาต์พุตสตรีมโดยใช้เมธอด getOutputStream() ของ MongoDB objectConnection วัตถุเอาท์พุตสตรีมประกอบด้วยสองส่วน วิธีการเขียน java.io เป็นขั้นตอนต่อไป อ็อบเจกต์ Stream ที่สร้างสตริงด้วยข้อความ Hello, World สตรีมเอาต์พุตควรถูกส่งไปยังเซิร์ฟเวอร์
ในตอนท้าย ต้องปิดวัตถุ MongoDBConnection โดยใช้เมธอด close() ของวัตถุ MongoDBQuery และวัตถุ MongoDBResultSet

ฐานข้อมูล Nosql และ Jdbc API

ฐานข้อมูล NoSQL กำลังได้รับความนิยม เนื่องจากง่ายต่อการรวมเข้ากับฐานข้อมูลขนาดใหญ่ แต่ JDBC API ไม่มีฟังก์ชันบิวด์อินเพื่อเชื่อมต่อกับฐานข้อมูล NoSQL เช่น Redis หรือ CouchDB มันเกี่ยวข้องกับการโต้ตอบกับระบบเชิงสัมพันธ์และแยกแยะโดย JDBC วิธีการเชื่อมต่อกับฐานข้อมูล MongoDB คืออะไร? การใช้การเชื่อมต่อ MongoDB JDBC สามารถวางเคียวรีกับฐานข้อมูล อัพเดตได้ และสามารถเข้าถึงโพรซีเดอร์ที่เก็บไว้ได้ ในบทช่วยสอนนี้ เราจะดูรายละเอียดของการเชื่อมต่อ JDBC ระหว่าง MongoDB และ Java

Nosql รองรับ Java หรือไม่

ถ่ายภาพโดย: https://ucarecdn.com

ใช่ nosql รองรับจาวา มี ฐานข้อมูล nosql ที่แตกต่างกันเล็กน้อย ที่รองรับจาวา เช่น MongoDB, Couchbase และ Cassandra แต่ละฐานข้อมูลเหล่านี้มีไดรเวอร์และ SDK ของตนเองที่สามารถใช้เพื่อโต้ตอบกับฐานข้อมูลจากแอปพลิเคชัน java

เทคโนโลยีฐานข้อมูล NoSQL ถูกนำมาใช้โดยบริษัทเว็บสเกลจำนวนมากเพื่อให้ได้ความสามารถในการขยายขนาดใหญ่ ฐานข้อมูล NoSQL มักจะกระจายไปตามเครื่องหลายเครื่องโดยมีเวลาแฝงอยู่บ้าง แต่รับประกันได้ว่าอินสแตนซ์ทั้งหมดจะสอดคล้องกันเมื่อเวลาผ่านไป ผู้ติดตาม Twitter ของฉันได้รับแจ้งเกี่ยวกับการมีอยู่ของบทความของฉันในกลางเดือนสิงหาคม Redis, MongoDB, ArangoDB, Neo4j และ Cassandra ได้รับการโหวตให้เป็นผู้ให้บริการ NoSQL ห้าอันดับแรกโดย GitHub stars เนื่องจากทั้งสามบริษัท ได้แก่ DynamoDB, Couchbase และ FaunaDB ไม่มีเซิร์ฟเวอร์ GitHub ฉันจึงนับไดรเวอร์ Java ของพวกเขาเป็นดาว จำนวนดาวในไดรเวอร์ Java ของแต่ละตัวเลือกเป็นความคิดที่ดี แต่ Redis มีเพียง 11 ดวง Cassandra ซึ่งเป็นระบบจัดเก็บข้อมูลแบบกระจาย มีจุดประสงค์เพื่อจัดการข้อมูลที่มีโครงสร้างจำนวนมากในเซิร์ฟเวอร์สินค้าโภคภัณฑ์จำนวนมาก

ปัจจุบัน โหนดมากกว่า 100,000 โหนดกำลังเรียกใช้ Cassandra ในฟาร์มการผลิตของ Apple ซึ่งเก็บข้อมูลมากกว่า 10 เพตะไบต์ Netflix ได้รับคำขอมากกว่า 1 ล้านล้านรายการต่อวัน โดยมี 2,500 โหนดและพื้นที่จัดเก็บ 420 เทราไบต์ Binary JSON (aka JSONB) และดัชนีถูกเพิ่มในไลบรารี Postgres 9.4 Leigh Halliday จะสอนวิธีใช้ Postgres เพื่อจัดเก็บข้อมูลอย่างรวดเร็วและมีประสิทธิภาพ Umair Shahid สาธิตวิธีประมวลผลข้อมูล Postgres ใน Java ในบล็อกโพสต์ แม้ว่า PostgreSQL จะไม่ใช่ฐานข้อมูล JSON รุ่นต่อไป แต่เป็นฐานข้อมูลเชิงสัมพันธ์ที่ยอดเยี่ยมพร้อมเรื่องราว JSON ที่แข็งแกร่ง โปรดแจ้งให้เราทราบหากคุณเป็นผู้เชี่ยวชาญในฐานข้อมูล NoSQL

หากคุณมีคำถามใดๆ เรายินดีที่จะตอบคำถามเหล่านี้ในการสัมภาษณ์ MongoDB, Cassandra, Redis และ Neo4j เป็น ฐานข้อมูล NoSQL ที่ได้รับความนิยม มากที่สุด JAXenter เผยแพร่ผลการสำรวจประจำปีเกี่ยวกับแนวโน้มฐานข้อมูลยอดนิยมเมื่อวันที่ 30 มีนาคม 2017

Nosql ใน Java คืออะไร?

ฐานข้อมูล NoSQL เก็บข้อมูลในเอกสาร JSON แทนที่จะเป็นแถวและคอลัมน์ โดยทั่วไปแล้ว ฐานข้อมูล NoSQL จะมี SQL และ API ของเอกสารเนทีฟที่เป็นทั้งส่วนต่อประสานกับฐานข้อมูล ฐานข้อมูลเอกสาร ที่เก็บคีย์-ค่า ฐานข้อมูลคอลัมน์กว้าง และฐานข้อมูลกราฟเป็นตัวอย่างบางส่วนของฐานข้อมูล NoSQL

ตัวอย่าง Nosql Java

ภาพจาก: https://blogspot.com

มีฐานข้อมูล NoSQL หลายประเภท แต่ละประเภทมีจุดแข็งและจุดอ่อนของตัวเอง ด้วยเหตุนี้ จึงเป็นเรื่องยากที่จะยกตัวอย่างเพียงตัวอย่างเดียวที่จะนำไปใช้ในระดับสากลได้ อย่างไรก็ตาม ฐานข้อมูล NoSQL ที่เป็นที่นิยม คือ Apache Cassandra Cassandra เป็นฐานข้อมูลแบบกระจายที่เหมาะสำหรับการจัดการข้อมูลจำนวนมาก มักใช้โดยบริษัทที่มีชุดข้อมูลขนาดใหญ่และซับซ้อน

วิธีอ่านข้อมูลจาก Mongodb ใน Java

มีหลายวิธีที่คุณสามารถอ่านข้อมูลจาก MongoDB ใน Java วิธีหนึ่งคือการใช้ ไดรเวอร์ MongoDB Java เพื่อเชื่อมต่อกับอินสแตนซ์ MongoDB ของคุณและเรียกใช้การสืบค้นโดยใช้ตัวสร้างการสืบค้นของไดรเวอร์ Java อีกวิธีหนึ่งคือการใช้เชลล์ MongoDB เพื่อเชื่อมต่อกับอินสแตนซ์ MongoDB ของคุณและสืบค้นข้อมูลโดยใช้ภาษาแบบสอบถาม MongoDB

มีเครื่องมือและวิธีการมากมาย หนึ่งในนั้นคือตัวสร้าง หากคุณมีออบเจกต์จำนวนมากที่ต้องจัดการ คุณควรพิจารณาใช้เฟรมเวิร์กอื่นที่ด้านบนของไดรเวอร์ Java ในกรณีนั้น ควรใช้รหัสต่อไปนี้: เนื่องจากเราไม่ต้องการใช้วิธีการที่เลิกใช้แล้ว เราจะใช้รหัสต่อไปนี้แทน JsonFactory, JsonParser และอื่นๆ คือตัวอย่างของ JsonFactory MongoDB Java API ใหม่ เหมาะสมกว่าสำหรับฉัน หากคุณต้องการเก็บเอกสารหลายฉบับที่มีชื่อและอายุของบุคคลเดียวกัน เราขอแนะนำให้ใช้ ArrayList เพื่อค้นหาเอกสารเหล่านี้ทั้งหมด (ซึ่งคุณจะเห็นเป็นแถวที่มีชื่อและอายุเดียวกัน) จากนั้นคุณสามารถเลือกเอกสารใน ArrayList เพื่อแปลงเป็นวัตถุ Java โดยใช้วิธีนี้

ดึงข้อมูลจาก Mongodb อย่างไร

เมื่อใช้การดำเนินการอ่าน คุณสามารถดึงข้อมูลจากฐานข้อมูล MongoDB ของคุณได้ โดยทั่วไป มีการดำเนินการอ่านหลายประเภทที่สามารถเข้าถึงข้อมูลได้หลายวิธี หากคุณต้องการขอผลลัพธ์ตามชุดของเกณฑ์จากชุดข้อมูลที่มีอยู่ คุณสามารถใช้การค้นหา เช่น เมธอด find() หรือ findOne()

ฉันจะอ่านไฟล์ทั้งหมดใน Mongodb ได้อย่างไร

เมื่อโปรแกรม Java ทำงาน ให้สร้างไคลเอ็นต์ MongoDB โดยสร้างอินสแตนซ์ของคลาส MongoClient GetDatabase() เป็นวิธีการเชื่อมต่อกับฐานข้อมูล เมธอด getCollection() ส่งคืนวัตถุเอกสารที่คุณต้องการดึงข้อมูลจากคอลเลกชัน

ฉันจะดูบันทึก Mongodb ได้อย่างไร

หากคุณต้องการดูรายการฐานข้อมูลของคุณ คุณสามารถใช้คำสั่งแสดงฐานข้อมูล ยังไม่ได้สร้างฐานข้อมูลใหม่ (mydb) ในการแสดงฐานข้อมูล คุณต้องมีเอกสารอย่างน้อยหนึ่งรายการ ใน MongoDB ฐานข้อมูลเริ่มต้นคือการทดสอบ

ฉันสามารถใช้ Java กับ Mongodb ได้ไหม

ก่อนที่คุณจะเริ่มใช้ MongoDB ในโปรแกรม Java คุณต้องแน่ใจก่อนว่าทั้ง MongoDB CLIENT และ Java ได้รับการติดตั้งบนเครื่องแล้ว ในการติดตั้ง Java บนเครื่องของคุณ คุณต้องดูบทช่วยสอน Java ก่อน อย่างที่คุณเห็น เราจะพูดถึงวิธีการติดตั้ง MongoDB CLIENT จำเป็นต้องติดตั้ง jar mongodb -driver-3.11

การค้นหา Mongodb ใน Java

MongoDB Query ใน Java เป็นเครื่องมืออันทรงพลังที่ช่วยให้นักพัฒนา Java สามารถเข้าถึงและสืบค้นฐานข้อมูล MongoDB MongoDB Query ใน Java API มีตัวเลือกมากมายสำหรับการสืบค้นข้อมูลในฐานข้อมูล MongoDB API รองรับตัวเลือกการสืบค้นที่หลากหลาย รวมถึงความสามารถในการสืบค้นตามตัวอย่าง สืบค้นตามฟิลด์ และสืบค้นตามดัชนี Query ใน Java API ยังรองรับคุณสมบัติหลายอย่างที่ทำให้ทำงานกับฐานข้อมูล MongoDB ได้ง่าย รวมถึงความสามารถในการเชื่อมต่อกับฐานข้อมูลหลายฐานข้อมูล ความสามารถในการเชื่อมต่อกับฐานข้อมูลใหม่โดยอัตโนมัติ และความสามารถในการลองสืบค้นซ้ำโดยอัตโนมัติ

ข้อมูลถูกจัดเก็บไว้ใน MongoDB เป็น BSON (การทำให้เป็นอนุกรมแบบเข้ารหัสไบนารีของเอกสาร Java Script Object Notation (JSON)) ซึ่งเป็นฐานข้อมูลเชิงเอกสารแบบโอเพ่นซอร์ส MongoDB (ระบบ NoSQL) ใช้เพื่อโต้ตอบกับภาษาต่างๆ โดยใช้เคียวรี API แทน SQL บทความต่อไปนี้จะแนะนำวิธีการใช้ไดรเวอร์ Java เพื่อเข้าถึง MongoDB จากนั้น GetDB() สามารถใช้เพื่อระบุฐานข้อมูลตามชื่อหลังจากสร้างการเชื่อมต่อแล้ว กล่าวอีกนัยหนึ่ง หากคุณต้องการดึงเอกสารเดียวจากคอลเลกชัน คุณสามารถใช้เมธอด find() คุณควรทราบว่าไดรเวอร์ Java แสดง DBObjects เป็นตัวดำเนินการ $ ที่ใช้ในเอกสาร MongoDB ตัวอย่างต่อไปนี้สาธิตวิธีการบันทึก อัปเดต ค้นหา และลบเอกสาร

สปริงดาต้า Nosql

Spring Data ยังมีโครงการเพิ่มเติมเพื่อช่วยให้คุณเริ่มต้นใช้งานเทคโนโลยี NoSQL เช่น MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire และ Couchbase Spring Boot ยังรวมถึงการกำหนดค่าอัตโนมัติสำหรับ Redis, MongoDB, Neo4j, Elasticsearch, Solr Cassandra, Couchbase และ LDAP

บทความนี้จะแสดงวิธีใช้ Spring Data (Spring Boot JPA/Hibernate) กับ RDBMS เช่น MySql/Postgress ทำให้ง่ายต่อการเปลี่ยนไปใช้ NoSQL (MongoDB) เป้าหมายของบทความนี้คือการแสดงวิธีเชื่อมต่อโปรเจ็กต์ Spring Boot กับ MongoDB รวมถึงวิธีกำหนดค่า MongoDB และใช้งาน ในการเชื่อมต่อกับ MongoDB คุณจะมีตัวเลือกหนึ่งในสามวิธี: MongoDB Compass, MongoDB Forge หรือ MongoDB Base ฉันควรมีเข็มทิศและเวอร์ชัน 1.12 หรือใหม่กว่า URL ทั้งหมดของการเข้าถึง MongoDB จะถูกคัดลอกโดยคลิกที่ปุ่มคัดลอก เมื่อเข็มทิศเริ่มทำงาน ระบบจะเลือก MongoDB URL จากคลิปบอร์ดของเราในส่วนก่อนหน้าโดยอัตโนมัติ กรอกรหัสผ่านของคุณแล้วคลิกเชื่อมต่อ ด้วยเหตุนี้ เราจึงได้เรียนรู้วิธีใช้ Spring Boot และ MongoDB

ตัวอย่าง Mongocollection Java

คลาส MongoCollection ใช้เพื่อแสดงชุดเอกสาร MongoDB มีวิธีการต่างๆ สำหรับการโต้ตอบกับคอลเล็กชัน เช่น การแทรก การอัปเดต และการลบเอกสาร
ตัวอย่างต่อไปนี้แสดงวิธีสร้างอินสแตนซ์ MongoCollection:
นำเข้า com.mongodb. MongoClient; นำเข้า com.mongodb.client MongoCollection; นำเข้า org.bson เอกสาร; // เชื่อมต่อกับอินสแตนซ์ MongoDB ในเครื่อง MongoClient mongoClient = new MongoClient(); // รับการจัดการกับคอลเลกชัน "ทดสอบ" MongoCollection คอลเลกชัน = mongoClient.getDatabase("ทดสอบ").getCollection("ทดสอบ");

ในบทนี้ เราจะสอนวิธีการติดตั้ง MongoDB ในโปรแกรม Java เพื่อให้แน่ใจว่าติดตั้ง MongoDB และ Java แล้ว ควรตั้งค่าเครื่อง ในการเชื่อมต่อฐานข้อมูล คุณต้องระบุชื่อฐานข้อมูล MongoDB จะสร้างฐานข้อมูลโดยอัตโนมัติหากไม่มีฐานข้อมูล ผลลัพธ์ต่อไปนี้ได้รับโดยใช้โปรแกรมด้านบน เอกสารทั้งหมดในคอลเลกชันสามารถดูได้โดยใช้เมธอด find() ของ com.mongodb.client คุณสามารถใช้คลาส MongoCollection ได้ที่นี่

การรวบรวมสามารถดรอปจากฐานข้อมูลได้โดยใช้เมธอด drop() ในอุตสาหกรรม MongoDB เมธอดที่เหลือได้แก่ save(), limit(),skip(), sort() และ save() limit and sort นี่เป็นขั้นตอนเดียวกับที่ใช้ในบทช่วยสอนก่อนหน้านี้

ห้องสมุด Mongodb Jdbc

ไลบรารี MongoDB JDBC เป็นไดรเวอร์ที่ช่วยให้นักพัฒนา Java สามารถเชื่อมต่อกับ MongoDB และโต้ตอบกับมันได้ มีชุดคุณสมบัติมากมายที่ทำให้ทำงานกับ MongoDB ได้ง่าย

การสืบค้น MongoDb ดั้งเดิม สามารถดำเนินการได้โดยใช้ JDBC ซึ่งตรงข้ามกับ Mongo Shell ไดรเวอร์มีตัวเลือก พารามิเตอร์ และ URL ที่เหมือนกันทั้งหมดเหมือนกับไดรเวอร์ MongoDB Java ดั้งเดิม เมธอดที่ใช้โดยเรียกข้อมูลเมตาของฐานข้อมูล โปรแกรมควบคุมจะอนุมานโครงสร้างฐานข้อมูลเชิงตรรกะเมื่อดำเนินการโดยใช้เมธอด GetTables() GetColumns() คอลเลกชันเป็นสมาชิกดั้งเดิมของ MongoDatabase ที่จัดเก็บเป็นวัตถุดั้งเดิมโดยใช้ WrappedMongoDatabase เมธอดส่วนใหญ่ใช้ JavaScript แต่บางเมธอดใช้ออบเจกต์ Bson ซึ่งสร้างเฉพาะแผนที่เท่านั้น นี่เป็นปัญหาที่เราพยายามหลีกเลี่ยงการใช้ Java Proxy แต่ไม่ได้ผล

โปรดยอมรับซอร์สโค้ดสำหรับข้อความค้นหาใดๆ ที่ใช้งานไม่ได้หากคุณพบ การใช้ไดอะแกรมกราฟิก DBSchema อ่านเอกสารตัวอย่างจากฐานข้อมูลและแปลงเป็นสคีมาแบบลอจิคัล เราอนุมานสคีมาจากโครงสร้างของเอกสารคอลเลกชันโดยการอ่านเอกสารจำนวนหนึ่งจากแต่ละคอลเลกชัน DbSchema สามารถสร้าง foreign key เสมือนที่จะถูกบันทึกไว้ในไฟล์โครงการ วิธีนี้ทำให้คุณสามารถค้นหาข้อมูลจากหลายตารางได้อย่างง่ายดายโดยใช้การเรียกดูข้อมูลเชิงสัมพันธ์

ฐานข้อมูล Nosql

ฐานข้อมูล NoSQL เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์ซึ่งไม่ได้ใช้โครงสร้างแบบตารางแบบดั้งเดิมของฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NoSQL มักใช้สำหรับข้อมูลขนาดใหญ่และเว็บแอปพลิเคชันแบบเรียลไทม์

แทนที่จะใช้ฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูล NoSQL จะเก็บข้อมูลไว้ในเอกสาร สร้างขึ้นให้เรียบง่าย ปรับเปลี่ยนได้ และสามารถตอบสนองความต้องการด้านการจัดการข้อมูลของธุรกิจสมัยใหม่ได้อย่างรวดเร็ว ฐานข้อมูลเอกสาร ที่เก็บคีย์-ค่า ฐานข้อมูลคอลัมน์กว้าง และฐานข้อมูลกราฟ คือตัวอย่างของฐานข้อมูล NoSQL บริษัททั่วโลกกว่า 2,000 แห่งกำลังนำฐานข้อมูล NoSQL มาใช้อย่างรวดเร็วเพื่อจัดหาแอปพลิเคชันที่มีความสำคัญต่อภารกิจ เนื่องจากแนวโน้ม 5 ประการ ฐานข้อมูลเชิงสัมพันธ์จำนวนมากจึงยากเกินไปที่จะจัดการเนื่องจากความท้าทายทางเทคนิค เนื่องจากโมเดลข้อมูลตายตัว ฐานข้อมูลเชิงสัมพันธ์จึงเป็นอุปสรรคสำคัญต่อการพัฒนาที่คล่องตัว รูปแบบแอปพลิเคชันกำหนดรูปแบบข้อมูลใน NoSQL

ไม่ใช่กรณีที่ NoSQL กำหนดวิธีการสร้างแบบจำลองข้อมูล ข้อมูลสามารถจัดเก็บในรูปแบบ JSON ในฐานข้อมูลเชิงเอกสาร ซึ่งช่วยลดจำนวนเฟรมเวิร์ก ORM ที่จำเป็น ลดความซับซ้อนในการพัฒนาแอปพลิเคชัน และขจัดความจำเป็นในการใช้ ORM เลย เวอร์ชันใหม่ของ Couchbase Server 4.0 นำเสนอ N1QL (ออกเสียงว่า นิเกิล) ซึ่งเป็นภาษาคิวรีที่ทรงพลังที่ช่วยให้สามารถแปล SQL เป็น JSON ได้ นอกจากนี้ยังสามารถใช้เพื่อรวมคำสั่ง SELECT / FROM / WHERE, จัดระเบียบ (SORT BY), เข้าร่วม (ซ้ายนอก / ใน) และอื่นๆ ประโยชน์ของฐานข้อมูลแบบกระจาย NoSQL ดังที่แสดงโดยสถาปัตยกรรมแบบขยายขนาดและไม่มีจุดที่ล้มเหลวแม้แต่จุดเดียว ความพร้อมใช้งานของแอปออนไลน์และมือถือมีความสำคัญมากขึ้น เนื่องจากลูกค้าจำนวนมากขึ้นดำเนินธุรกิจออนไลน์

สามารถติดตั้ง กำหนดค่า และปรับขนาดฐานข้อมูล NoSQL ได้อย่างรวดเร็วและง่ายดาย มันถูกออกแบบมาเพื่อทำหน้าที่เป็นห้องสมุด สภาพแวดล้อมในการเขียน และระบบจัดเก็บข้อมูล สามารถทำงานได้ทุกขนาดและสามารถจัดการและตรวจสอบเป็นรายวันหรือรายสัปดาห์ ฐานข้อมูล NoSQL แบบกระจายช่วยให้สามารถจำลองข้อมูลระหว่างศูนย์ข้อมูลต่างๆ ได้โดยไม่ต้องใช้ซอฟต์แวร์เพิ่มเติมใดๆ นอกจากนี้ยังช่วยให้สามารถเฟลโอเวอร์แอปพลิเคชันได้ทันทีผ่านเราเตอร์ฮาร์ดแวร์ แอปพลิเคชันไม่จำเป็นต้องรอให้ฐานข้อมูลตรวจพบปัญหาและดำเนินการเอง ด้วยการเพิ่มขึ้นของ Internet of Things (IoT) และเว็บแอปพลิเคชัน ฐานข้อมูล NoSQL จึงได้รับความนิยมมากขึ้น

หากแอปพลิเคชันของคุณต้องการธุรกรรมและความสอดคล้องของข้อมูล คุณอาจต้องพิจารณาตัวเลือกอื่นๆ
นอกเหนือจากความสามารถในการปรับขนาดแล้ว ฐานข้อมูล NoSQL มักมีข้อเสียเมื่อเปรียบเทียบกับฐานข้อมูลแบบดั้งเดิม หากแอปพลิเคชันของคุณประมวลผลข้อมูลจำนวนมาก อาจประสบปัญหานี้
อย่างไรก็ตาม ฐานข้อมูล NoSQL มีข้อดีมากมายเหนือ RDBMS พวกเขาสามารถมีประสิทธิภาพมากขึ้นในแง่ของการจัดเก็บและความสามารถในการประมวลผล และง่ายต่อการใช้งานและเรียนรู้