Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

MongoDB แนวคิดการวิเคราะห์

ไม่ว่าเราจะเรียนรู้สิ่งที่ควรเรียนรู้ฐานข้อมูลหนึ่งในแนวคิดพื้นฐานในแนวคิดพื้นฐาน MongoDB คือว่าเอกสารคอลเลกชันฐานข้อมูลที่นี่เราแนะนำหนึ่งโดยหนึ่ง

ตารางต่อไปนี้จะช่วยให้คุณง่ายต่อการเข้าใจบางส่วนของแนวคิด Mongo นี้:

SQL คำศัพท์ / แนวคิด ระยะ MongoDB / แนวคิด คำอธิบาย / รายละเอียด
ฐานข้อมูล ฐานข้อมูล ฐานข้อมูล
ตาราง ชุด ตารางฐานข้อมูล / คอลเลกชัน
แถว เอกสาร สายการบันทึกข้อมูล / เอกสาร
คอลัมน์ สนาม ข้อมูลของฟิลด์โดเมน /
ดัชนี ดัชนี ดัชนี
ตารางร่วม ตารางที่ร่วม MongoDB ไม่สนับสนุน
คีย์หลัก คีย์หลัก คีย์หลัก MongoDB ฟิลด์ _id โดยอัตโนมัติเป็นคีย์หลัก

โดยทำตามตัวอย่างรูปที่เราสามารถเข้าใจง่ายมากขึ้นของ Mongo บางแนวคิด:


ฐานข้อมูล

MongoDB สามารถสร้างฐานข้อมูลหลาย ๆ

ฐานข้อมูล MongoDB เริ่มต้นคือ "DB" ฐานข้อมูลจะถูกเก็บไว้ในไดเรกทอรีข้อมูล

เช่นเดียวของ MongoDB สามารถรองรับฐานข้อมูลอิสระหลายแต่ละคนมีชุดของตัวเองของสิทธิ์และฐานข้อมูลที่แตกต่างกันจะถูกวางไว้ยังอยู่ในไฟล์ที่แตกต่างกัน

"แสดงดีบีเอส" เพื่อแสดงรายการข้อมูลทั้งหมด

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> show dbs
local  0.078GB
test   0.078GB
> 

การดำเนินการตามคำสั่ง "DB" เพื่อแสดงวัตถุฐานข้อมูลปัจจุบันหรือการจัดเก็บ

$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
> db
test
> 

Run "ใช้คำสั่ง" คุณสามารถเชื่อมต่อกับฐานข้อมูลเฉพาะ

> use local
switched to db local
> db
local
> 

ตัวอย่างของคำสั่งดังกล่าว "ท้องถิ่น" คือการที่คุณต้องการที่จะเชื่อมโยงฐานข้อมูล

ในบทต่อไปเราจะอธิบายในรายละเอียดการใช้งานของ MongoDB ในคำสั่ง

ฐานข้อมูลยังสามารถระบุชื่อ ชื่อฐานข้อมูลสามารถมีเงื่อนไขใด ๆ ต่อไปนี้ UTF-8 สตริง

  • มันไม่สามารถเป็นสตริงว่าง ( "")
  • ไม่ประกอบด้วย '' (เว้นวรรค). $ / \ และ \ 0 (null Yu Fu)
  • มันควรจะเป็นพิมพ์เล็กทั้งหมด
  • ถึง 64 ไบต์

ชื่อฐานข้อมูลบางส่วนจะถูกสงวนไว้โดยตรงและสามารถเข้าถึงฐานข้อมูลเหล่านี้มีบทบาทพิเศษ

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

ไฟล์

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

ตัวอย่างเอกสารที่เรียบง่ายมีดังนี้

{"site":"www.w3big.com", "name":"本教程"}

ตารางต่อไปนี้แสดง RDBMS และ MongoDB แง่ที่สอดคล้องกัน:

RDBMS MongoDB
ฐานข้อมูล ฐานข้อมูล
ตาราง ตั้งค่า
แถว ไฟล์
แถว สนาม
ตารางที่ร่วม เอกสารที่ฝังตัว
คีย์หลัก คีย์หลัก (MongoDB ให้คีย์สำหรับ _id) ที่
บริการฐานข้อมูลและลูกค้า
mysqld / ออราเคิล mongod
MySQL / sqlplus Mongo

โปรดทราบว่า:

  1. ที่สำคัญเอกสาร / คู่ค่าจะได้รับคำสั่ง
  2. เอกสารอาจจะไม่เพียง แต่ค่าของสตริงภายในราคาคู่ยังสามารถเป็นหลายประเภทข้อมูลอื่น ๆ (หรือแม้กระทั่งเอกสารที่ฝังตัวอยู่ทั้งหมด)
  3. MongoDB จะแยกแยะประเภทและมีความละเอียดอ่อน
  4. เอกสาร MongoDB ไม่สามารถมีคีย์ที่ซ้ำกัน
  5. เอกสารที่สำคัญคือสตริง โดยมีข้อยกเว้นที่สำคัญสามารถใช้อักขระ UTF-8 ใด ๆ

เอกสารสำคัญตั้งชื่อการประชุม:

  • ที่สำคัญไม่สามารถมี \ 0 (อักขระ null) ตัวละครตัวนี้จะใช้ในการบ่งบอกถึงการสิ้นสุดของพันธบัตร
  • . และ $ มีความหมายพิเศษเพียงนำมาใช้ภายใต้สถานการณ์บางอย่าง
  • เพื่อขีด "_" ที่จุดเริ่มต้นของคีย์ที่มีลิขสิทธิ์ (ไม่จำเป็นต้องใช้อย่างเคร่งครัด)

ตั้งค่า

MongoDB เป็นกลุ่มเอกสารคอลเลกชันที่คล้ายกับ RDBMS (ที่ระบบการจัดการฐานข้อมูลเชิงสัมพันธ์: สัมพันธ์ระบบการจัดการฐานข้อมูล) ในรูปแบบ

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

ตัวอย่างเช่นเราสามารถเอกสารโครงสร้างข้อมูลเหล่านี้แตกต่างกันในคอลเลกชันนี้:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.w3big.com","name":"本教程","num":5}

เมื่อเอกสารครั้งแรกในคอลเลกชันจะถูกสร้างขึ้น

ชื่อคอลเลกชันที่ถูกต้อง

  • ชื่อคอลเลกชันไม่สามารถเป็นสตริงที่ว่างเปล่า "."
  • ตั้งชื่อไม่สามารถมี \ 0 ตัวอักษร (อักขระ null) ตัวละครตัวนี้แสดงให้เห็นจุดสิ้นสุดของการรวบรวมรายชื่อให้
  • ตั้งชื่อไม่สามารถเป็น "ระบบ." ที่เริ่มต้นซึ่งเป็นที่สงวนไว้สำหรับคำนำหน้าชุดระบบ
  • ชื่อคอลเลกชันที่ผู้ใช้สร้างไม่สามารถมีตัวอักษรที่สงวนไว้ ไดรเวอร์บางจะสนับสนุนคอลเลกชันที่มีชื่อนี้เป็นเพราะบางคอลเลกชันที่ระบบสร้างขึ้นมีตัวอักษร ถ้าคุณต้องการที่จะเข้าถึงคอลเลกชันของระบบดังกล่าวถูกสร้างขึ้นมิฉะนั้นจะไม่ปรากฏในชื่อ $ ภายใน

ตัวอย่างต่อไปนี้:

db.col.findOne()

คอลเลกชันที่ปกคลุม

คอลเลกชันที่ปกคลุมได้รับการแก้ไขขนาดคอลเลกชัน

มันมีลักษณะที่มีประสิทธิภาพสูงและคิวหมดอายุ (หมดอายุตามคำสั่งของแทรก). ค่อนข้างคล้ายกันและแนวคิด "RRD"

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

มันเป็นข้อสังเกตว่าขนาดการจัดเก็บข้อมูลที่ระบุของฐานข้อมูลที่มีข้อมูลส่วนหัว

db.createCollection("mycoll", {capped:true, size:100000})
  • ในคอลเลกชันที่ปกคลุมคุณสามารถเพิ่มวัตถุใหม่
  • สามารถปรับปรุงได้ แต่วัตถุที่จะไม่เพิ่มพื้นที่จัดเก็บ ถ้าคุณเพิ่มการปรับปรุงจะล้มเหลว
  • ฐานข้อมูลไม่อนุญาตให้มีการลบ ใช้ลดลง () วิธีการลบทั้งหมดแถวคอลเลกชัน
  • หมายเหตุ: หลังจากที่คุณลบคุณอย่างชัดเจนต้องสร้างคอลเลกชัน
  • ในเครื่อง 32bit, คอลเลกชันที่ปกคลุมเป็น 1e9 การจัดเก็บข้อมูลที่ใหญ่ที่สุด (1x10 9) ไบต์

เมตาดาต้า

ข้อมูลในฐานข้อมูลจะถูกเก็บไว้ในคอลเลกชัน พวกเขาใช้ระบบ namespace นี้:

dbname.system.*

ในฐานข้อมูล MongoDB namespace <dbname> .system * ที่มีความหลากหลายของข้อมูลระบบคอลเลกชันพิเศษ (เก็บ) ดังต่อไปนี้:

namespace คอลเลกชัน ลักษณะ
dbname.system.namespaces รายชื่อ namespaces ทั้งหมด
dbname.system.indexes รายชื่อดัชนีทั้งหมด
dbname.system.profile สรุปมันมีฐานข้อมูล (โปรไฟล์) ข้อมูล
dbname.system.users รายชื่อผู้ใช้ทุกคนสามารถเข้าถึงฐานข้อมูล
dbname.local.sources มันมีสำเนาของการสิ้นสุด (ทาส) ข้อมูลเซิร์ฟเวอร์และสถานะ

การปรับเปลี่ยนวัตถุระบบในคอลเลกชันยังมีข้อ จำกัด ดังต่อไปนี้

ใน system.indexes {{}} แทรกข้อมูลคุณสามารถสร้างดัชนี แต่อย่างอื่นข้อมูลตารางจะไม่เปลี่ยนรูป (คำสั่งดัชนีลดลงพิเศษจะอัปเดตข้อมูลที่เกี่ยวข้องโดยอัตโนมัติ)

{{}} System.users แก้ไขได้ {{}} System.profile จะถูกลบออก


MongoDB ชนิดข้อมูล

ตารางต่อไปนี้ MongoDB หลายที่ใช้กันทั่วไปชนิดข้อมูล

ชนิดข้อมูล ลักษณะ
เชือก เชือก การจัดเก็บข้อมูลที่ใช้กันทั่วไปชนิดข้อมูล ใน MongoDB สตริงเข้ารหัส UTF-8 เป็นกฎหมาย
จำนวนเต็ม ค่าจำนวนเต็ม มันใช้ในการเก็บค่า ทั้งนี้ขึ้นอยู่กับเซิร์ฟเวอร์ที่คุณกำลังใช้ก็สามารถแบ่งออกเป็น 32 บิตหรือ 64 บิต
บูลีน ค่าบูลีน สำหรับการจัดเก็บค่าบูลีน (จริง / เท็จ)
สอง ความแม่นยำสองค่าจุดลอยตัว สำหรับการจัดเก็บค่าจุดลอยตัว
คีย์ต่ำสุด / สูงสุด ค่าต่ำสุดและ BSON ค่า (ไบนารี JSON) องค์ประกอบและค่าสูงสุดของอัตราส่วนญาติ
อาร์เรย์ สำหรับอาร์เรย์หรือรายการหรือการจัดเก็บค่าหลายค่าสำหรับคีย์
การประทับเวลา การประทับเวลา ปรับเปลี่ยนหรือเพิ่มบันทึกเอกสารเวลาที่เฉพาะเจาะจง
วัตถุ สำหรับเอกสารที่ฝังตัว
โมฆะ มันจะสร้างค่าว่าง
สัญญลักษณ์ สัญญลักษณ์ ชนิดของข้อมูลนี้เป็นอย่างมากเท่ากับประเภทสตริง แต่ความแตกต่างก็คือว่ามันเป็นเรื่องปกติสำหรับการใช้สัญลักษณ์พิเศษภาษาพิมพ์
วันที่ วันที่เวลา รูปแบบเวลายูนิกซ์ใช้ในการเก็บวันที่ปัจจุบันหรือเวลา คุณสามารถระบุวันที่ของคุณเองและเวลา: วันที่วัตถุถูกสร้างข้อมูลวันที่เข้ามา
ID วัตถุ ID วัตถุ รหัสที่ใช้ในการสร้างเอกสาร
ข้อมูลไบนารี ข้อมูลไบนารี สำหรับการจัดเก็บข้อมูลไบนารี
รหัส ประเภทแท็ก โค้ด JavaScript จะใช้ในการจัดเก็บเอกสาร
แสดงออกปกติ ประเภทการแสดงออกปกติ สำหรับการจัดเก็บการแสดงออกปกติ