Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB
MongoDB
  1. ความแตกต่างระหว่าง RDBMS และ MongoDB

    ภาพรวม RDBMS และ MongoDB RDBMS (Relational Database Management System) จัดเก็บข้อมูลในรูปตาราง (Tables) ใช้ Primary Key และ Foreign Key สร้างความสัมพันธ์ ใช้ภาษา SQL ตัวอย่าง: Oracle, SQL Server, MySQL MongoDB (NoSQL Database) จัดเก็บข้อมูลในรูปเอกสาร (Documents) ใช้ BSON (Binary JSON) ไม่ใช้ SQL รอ

  2. วิธีติดตั้งและตั้งค่า MongoDB บน CentOS 7

    ขั้นตอนการติดตั้ง MongoDB บน CentOS 7 MongoDB เป็นฐานข้อมูล NoSQL เน้นประสิทธิภาพและความพร้อมใช้งานสูง ไม่ต้องกำหนดสกีมาไว้ล่วงหน้า เงื่อนไขก่อนติดตั้ง CentOS 7 ติดตั้งแล้ว ผู้ใช้ที่มีสิทธิ์ root เพิ่ม Repository และติดตั้ง สร้างไฟล์ repo: vi /etc/yum.repos.d/mongodb-org.repo เพิ่มเนื้อหา reposit

  3. วิธีติดตั้ง MongoDB บน Ubuntu 16.04

    เพิ่ม Repository และติดตั้ง MongoDB MongoDB ไม่อยู่ใน repository เริ่มต้นของ Ubuntu 16.04 ต้องเพิ่ม repository อย่างเป็นทางการก่อน ขั้นตอนการติดตั้ง นำเขียด GPG Key: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 เพิ่ม Repository: echo deb https://repo.mongodb.org/apt/u

  4. วิธีรักษาความปลอดภัย MongoDB บน Ubuntu 16.04

    เปิดใช้งานการตรวจสอบสิทธิ์และเพิ่มผู้ดูแลระบบ ใน MongoDB เวอร์ชันก่อน 3.x ไม่มีการตรวจสอบสิทธิ์เริ่มต้น ทำให้เปราะบางต่อการโจมตี แม้เวอร์ชันใหม่ก็ยังปิดการตรวจสอบสิทธิ์เป็นค่าเริ่มต้น จึงต้องเปิดใช้งานและสร้างผู้ดูแลระบบ ขั้นตอนการรักษาความปลอดภัย เข้าสู่ Mongo Shell: mongo สลับไปฐานข้อมูล admin: u

  5. วิธีเปลี่ยนชื่อฟิลด์ (Remap Fields) ในคอลเลกชัน MongoDB

    ใช้ $rename ใน update() ตัวดำเนินการ $rename ใช้เปลี่ยนชื่อฟิลด์ในเอกสาร เริ่มต้นด้วยข้อมูลที่มีฟิลด์ Name > db.demo171.insertOne({ Name: Chris, Details: { SubjectName: MySQL, CountryName: US } }); คำสั่งเปลี่ยนชื่อฟิลด์ Name เป็น StudentName: > db.demo171.update({}, { $rename: { Name: Student

  6. การค้นหาค่าแบบตัวพิมพ์เล็กใน MongoDB

    ใช้ toLowerCase() ใน find() เพื่อค้นหาค่าโดยไม่สนใจตัวพิมพ์ใหญ่-เล็ก ให้ใช้เมธอด toLowerCase() บนค่าที่ค้นหา > db.demo172.insertOne({SubjectName: mongodb}); คำสั่งค้นหา MONGODB แบบ case-insensitive: > db.demo172.find({SubjectName: MONGODB.toLowerCase()}); ผลลัพธ์คืนเอกสารที่ SubjectName เป็น m

  7. การจำกัดจำนวนค่าในฟิลด์อาร์เรย์ด้วย MongoDB

    ใช้ $slice ใน Projection ตัวดำเนินการ $slice ใช้จำกัดจำนวนอิลิเมนต์ที่คืนค่าจากอาร์เรย์ ค่าลบหมายถึงนับจากท้าย > db.demo173.insertOne({ListOfValues: [10, 40, 100, 560, 700, 900]}); คำสั่งดึง 2 ค่าสุดท้าย: > db.demo173.find({}, { ListOfValues: { $slice: -2 } }); ผลลัพธ์: { ListOfValues: [700, 9

  8. การประเมินค่าหนึ่งหรือหลายค่าจากคอลเลกชัน MongoDB

    ใช้ $or ใน find() ตัวดำเนินการ $or ใช้สำหรับสืบค้นเอกสารที่ตรงกับเงื่อนไขอย่างน้อยหนึ่งข้อจากหลายเงื่อนไข > db.demo174.insertOne({StudentName: Chris, CountryName: US}); คำสั่งค้นหาที่ StudentName=David หรือ CountryName=US: > db.demo174.find({$or: [{StudentName: David}, {CountryName: US}]}); ผล

  9. การใช้ค่าฟิลด์เป็นรูปแบบใน $regex ของ MongoDB

    ใช้ $indexOfCP ใน Aggregate สามารถใช้ค่าของฟิลด์หนึ่งเป็นรูปแบบค้นหาในอีกฟิลด์หนึ่งได้ด้วย $indexOfCP ร่วมกับ $expr ใน aggregate > db.patterDemo.insertOne({ ClientName: John, ClientWebsiteName: webbuziness.com/John/business }); คำสั่งค้นหาที่ ClientWebsiteName มี ClientName อยู่ในสตริง: > db.p

  10. การแทนที่ค่าในอาร์เรย์ฟิลด์ของ MongoDB

    ใช้ Positional Operator ($) สำหรับการแทนที่ ตัวดำเนินการตำแหน่ง $ ใช้ระบุอิลิเมนต์ที่จะแทนที่ในอาร์เรย์ เริ่มต้นด้วยข้อมูลวิชาเทคนิค > db.replaceAnArrayFieldValueDemo.insertOne({StudentTechnicalSubjects: [MySQL, SQL Server, PL/SQL]}); คำสั่งแทนที่ SQL Server ด้วย MongoDB: > db.replaceAnArrayFi

  11. การสืบค้นอาร์เรย์ของสตริงซ้อนใน MongoDB

    ใช้ Dot Notation สำหรับอาร์เรย์ซ้อน สามารถสืบค้นค่าในอาร์เรย์ที่ซ้อนอยู่ในออบเจกต์ได้โดยใช้ dot notation ตรงไปตรงมา > db.nestedStringDemo.insertOne({ CustomerName: John, CustomerOtherDetails: [ { Age: 29, CountryName: US }, { CompanyName: Amazon, Salary: 150000, ProjectName: [Online Library Manag

  12. การดึงออบเจกต์ซ้อนเป็นเอกสารด้วย Aggregate ใน MongoDB

    ใช้ $replaceRoot ตัวดำเนินการ $replaceRoot ใน aggregate framework ใช้ส่งมอบออบเจกต์ซ้อน (embedded object) เป็นรูทของเอกสารผลลัพธ์ > db.embeddedObjectDemo.insertOne({ _id: new ObjectId(), UserDetails: { UserName: John, UserAge: 24, UserEmailId: John22@gmail.com } }); คำสั่งดึง UserDetails เป็นเอกส

  13. การสร้างคำสั่ง MongoDB แบบไดนามิก (Dynamic Query)

    เขียนฟังก์ชันสร้าง Query อย่างไดนามิก เพื่อสร้างคำสั่งสืบค้นแบบไดนามิก ต้องเขียนสคริปต์ฟังก์ชันที่สร้างเงื่อนไขตามอินพุต ใช้ $in หรือ $nin ตามสถานการณ์ > function findDocument(subject) { var find = {}; if (subject.length == 0) find[$nin] = subject; else find[$in] = subject; return find; } การใช้ง

  14. การดึงอิลิเมนต์เฉพาะใน Nested Array ของ MongoDB

    ใช้ $elemMatch หลายชั้น เพื่อดึงอิลิเมนต์เฉพาะในอาร์เรย์ซ้อนหลายชั้น ให้ใช้ $elemMatch แบบ巢 (nested) เริ่มต้นด้วยข้อมูลผู้ใช้ที่มีรายละเอียดซ้อนกัน > db.particularElementDemo.insertOne({ GroupId: Group-1, UserDetails: [ { UserName: John, UserOtherDetails: [ { UserEmailId: John123@gmail.com, UserF

  15. การแสดงค่าที่ไม่ซ้ำกันด้วย $addToSet ใน MongoDB

    ใช้ $addToSet ใน Aggregate ตัวดำเนินการ $addToSet ใช้รวบรวมค่าที่ไม่ซ้ำกันในอาร์เรย์ เริ่มต้นด้วยข้อมูลอาร์เรย์ตัวเลข > db.getDistinctDemo.insertOne({Values: [100, 200]}); คำสั่งรวมค่าที่ไม่ซ้ำจากทุกเอกสาร: > db.getDistinctDemo.aggregate([ { $group: { _id: 0, MyValues: { $addToSet: $Values } }

  16. วิธีสืบค้นรายการทั้งหมดใน MongoDB

    ใช้ find() พร้อม projection คำสั่ง find() ใช้สำหรับสืบค้นรายการทั้งหมด สามารถระบุ projection เพื่อเลือกฟิลด์ที่ต้องการ > db.queryAllItemsDemo.find({}, {StudentDetails: 1}).pretty(); ผลลัพธ์จะแสดงเฉพาะฟิลด์ StudentDetails (และ _id โดยอัตโนมัติ)

  17. การดึงคำแรกที่ไม่ซ้ำกันจากสตริงใน MongoDB

    ใช้ distinct() ร่วมกับ map() เพื่อดึงคำแรกที่ไม่ซ้ำกันจากฟิลด์สตริง ให้ใช้ distinct() แล้วประมวลผลด้วย map() และ split() > db.distinctFirstWordDemo.insertOne({ _id: 100, StudentName: John, StudentFeature: John is a good player, Subject: MongoDB }); คำสั่งดึงคำแรกที่ไม่ซ้ำ: > student = db.disti

  18. การสืบค้นค่าใน MongoDB ด้วย $lte และ $in

    ใช้ $not และ $gt เพื่อจำลอง $lte MongoDB ไม่มีตัวดำเนินการ $lte โดยตรงในบางบริบท แต่สามารถใช้ $not ร่วมกับ $gt เพื่อบรรลุผลลัพธ์เดียวกัน เริ่มต้นด้วยข้อมูลคะแนน > db.queryMongoValueDemo.insertOne({ _id:101, ScoreDetails: [{Score:80},{Score:45},{Score:25},{Score:70}] }); คำสั่งค้นหาคะแนนเท่ากับ 80

  19. การสร้างดัชนีบนฟิลด์ซ้อน (Nested Field) ใน MongoDB

    ใช้ Dot Notation ใน createIndex สามารถสร้างดัชนีบนฟิลด์ซ้อนได้โดยใช้ dot notation ระบุเส้นทางของฟิลด์ เริ่มต้นด้วยการสร้างคอลเลกชันพร้อมข้อมูลผู้ใช้ซ้อนกัน > db.createIndexOnNestedFieldDemo.insertOne({ UserDetails: { UserPersonalDetails: { UserFirstName: John, UserLastName: Smith } } }); คำสั่งสร

  20. การลบฟิลด์ว่างออกจาก MongoDB

    ใช้ updateMany พร้อม $unset เพื่อลบฟิลด์ที่มีค่าว่าง ให้ใช้ updateMany ร่วมกับ $unset เริ่มต้นด้วยการสร้างข้อมูลที่มีฟิลด์ StudentName ว่าง > db.removeEmptyFieldsDemo.insertOne({StudentName:}); คำสั่งลบฟิลด์ StudentName ที่มีค่าว่าง: > db.removeEmptyFieldsDemo.updateMany({StudentName: }, { $un

Total 1351 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:41/68  20-คอมพิวเตอร์/Page Goto:1 35 36 37 38 39 40 41 42 43 44 45 46 47