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

    สแกนทุก Collection ใน Database เพื่อหาที่มีฟิลด์ที่ต้องการ ใช้ db.getCollectionNames() วนลูปทุก Collection แล้ว find() พร้อม $exists: true ตรวจสอบฟิลด์ คำสั่ง: หา Collection ที่มีฟิลด์ StudentFirstName 0) { print(myCollectionName); } }); ผลลัพธ์ตัวอย่าง multiDimensionalArrayProjection

  2. วนลูป Cursor และพิมพ์เอกสารใน MongoDB

    ใช้ forEach() ร่วม printjson() วนอ่านและแสดงผล Cursor เมธอด find() คืนค่า Cursor ซึ่งสามารถวนลูปได้ด้วย forEach() และพิมพ์แต่ละเอกสารด้วย printjson() ตัวอย่างข้อมูล > db.cursorDemo.insertOne({StudentFullName:John Smith,StudentAge:23}); > db.cursorDemo.insertOne({StudentFullName:John Doe,Stude

  3. ลบและอัปเดทเอกสารที่มีอยู่ใน MongoDB ($pull)

    ใช้ $pull ลบ Sub-document ออกจากอาร์เรย์และอัปเดทเอกสารพร้อมกัน $pull ลบสมาชิกในอาร์เรย์ที่ Match เงื่อนไข และอัปเดทเอกสารใน Operation เดียว (Atomic) ตัวอย่างข้อมูล: User Details เป็นอาร์เรย์ของ Object > db.removeDemo.insertOne({ UserName: Larry, UserDetails: [ { _id: 101, UserEmailId: 9

  4. ต่อข้อความ (Concatenate) ผลลัพธ์ใน MongoDB

    ใช้ forEach() รวมฟิลด์ใน MongoDB Shell MongoDB Shell สามารถใช้ JavaScript forEach() บน Cursor เพื่อประมวลผลแต่ละเอกสารและสร้างฟิลด์ใหม่จากการรวมสตริง ตัวอย่างข้อมูล > db.concatenateDemo.insertOne({Name:John,Age:21}); > db.concatenateDemo.insertOne({Name:Carol,Age:23}); คำสั่ง Concatenate Nam

  5. รูปแบบคำสั่งสำหรับ Boolean Values ใน MongoDB

    Query Boolean Field ด้วย $eq และ $ne ใน MongoDB ค่า Boolean คือ true และ false สามารถ Query ได้โดยตรงหรือใช้โอเปอเรเตอร์เปรียบเทียบ ตัวอย่างข้อมูล > db.booleanQueryDemo.insertOne({UserName:John,UserAge:23,isMarried:true}); > db.booleanQueryDemo.insertOne({UserName:Chris,UserAge:21,isMarried:f

  6. เพิ่มค่าฟิลด์ใน MongoDB (Increment)

    ใช้ $inc เพิ่ม/ลดค่าตัวเลขในฟิลด์ โอเปอเรเตอร์ $inc ใช้สำหรับเพิ่มค่า (Increment) หรือลดค่า (Decrement) ฟิลด์ตัวเลข โดยอัตโนมัติสร้างฟิลด์ใหม่ถ้ายังไม่มี ตัวอย่างข้อมูล > db.incrementDemo.insertOne({PlayerScore:100}); > db.incrementDemo.insertOne({PlayerScore:290}); > db.incrementDemo.inse

  7. อัปเดทออบเจ็กต์ที่ Index เฉพาะในอาร์เรย์ MongoDB

    ใช้ Positional Notation (Dot Notation) อัปเดทค่าที่ Index เฉพาะ ใน MongoDB สามารถอัปเดทค่าในอาร์เรย์ที่ Index เฉพาะได้โดยใช้ Dot Notation: arrayName.index.fieldName ตัวอย่างข้อมูล: อาร์เรย์ 2 มิติ (Nested Array) > db.updateObjectDemo.insertOne({ id: 101, StudentDetails: [ [ { Stu

  8. หาตำแหน่ง (Index) ของค่าในอาร์เรย์ MongoDB

    ใช้ Map-Reduce หา Index ของค่าในอาร์เรย์ MongoDB ไม่มีฟังก์ชัน Built-in สำหรับหา Index ของค่าในอาร์เรย์โดยตรง แต่สามารถใช้ mapReduce ร่วมกับ JavaScript Array.indexOf() ได้ ตัวอย่างข้อมูล > db.retrievePositionDemo.find().pretty(); { _id : ObjectId(5cd569ec7924bb85b3f4893f), Subjects : [ MySQL, Mo

  9. ลบฟิลด์ (Key Fields) ใน MongoDB

    ใช้ $unset ลบฟิลด์ออกจากเอกสาร โอเปอเรเตอร์ $unset ลบฟิลด์ที่ระบุออกจากเอกสาร ทำให้ฟิลด์นั้นหายไปสมบูรณ์ (ไม่ใช่เซตเป็น null) ตัวอย่างข้อมูล > db.removeKeyFieldsDemo.insertOne({StudentFirstName:John,StudentLastName:Doe,StudentAge:23}); > db.removeKeyFieldsDemo.insertOne({StudentFirstName:John

  10. ลบเอกสารเพียง 1 รายการใน MongoDB

    ใช้ remove() ร่วมกับ findOne() ลบเอกสารเดียว ใน MongoDB Legacy API ใช้ remove() แต่ควรระบุเงื่อนไขเฉพาะเจาะจง (โดยเฉพาะ _id) เพื่อลบเพียง 1 เอกสาร ตัวอย่างข้อมูล > db.removeOnlyOneDocumentDemo.insertOne({FirstName:John,LastName:Smith}); > db.removeOnlyOneDocumentDemo.insertOne({FirstName:Caro

  11. เช็คเวอร์ชัน MongoDB ที่ติดตั้งผ่าน Command Line

    ตรวจสอบ MongoDB Version จาก Command Prompt (Windows) วิธีง่ายที่สุดคือใช้คำสั่ง mongo --version หรือ mongod --version ใน Terminal/Command Prompt ขั้นตอนบน Windows เปิด Command Prompt (Win+R → พิมพ์ cmd → Enter) ไปที่โฟลเดอร์ bin ของ MongoDB (เช่น C:\Program Files\MongoDB\Server\4.0\bin) รันคำสั่ง:

  12. ใช้ชื่อคอลเลกชันเป็นตัวแปรใน MongoDB Shell ด้วย JavaScript

    กำหนดตัวแปรอ้างอิง Collection ใน MongoDB Shell MongoDB Shell เป็น JavaScript Environment ทำให้สามารถกำหนด Collection ให้กับตัวแปร แล้วเรียกเมธอดผ่านตัวแปรได้ ตัวอย่างข้อมูล > db.employeeInformation.insertOne({EmployeeName:John Smith,EmployeeAge:24,EmployeeSalary:450000}); Case 1: กำหนดตัวแปรด้ว

  13. ตรวจสอบว่าฟิลด์ในเอกสาร MongoDB มีค่าหรือไม่ (ไม่ใช่ Empty Array)

    ใช้ $exists กับ Dot Notation ตรวจสอบ Index แรกของอาร์เรย์ เพื่อเช็คว่าอาร์เรย์มีข้อมูล (ไม่ใช่ Empty Array) ใช้ { arrayField.0: { $exists: true } } - ถ้ามี Index 0 แสดงว่ามีอย่างน้อย 1 สมาชิก ตัวอย่างข้อมูล: คะแนนผู้เล่น (บางคนยังไม่มีคะแนน) > db.checkIfValueDemo.insertOne({PlayerName:John Smith

  14. รวมค่าทุกฟิลด์ใน Sub-document ด้วย MongoDB Aggregation

    ใช้ Aggregation Pipeline $unwind + $group + $sum เมื่อมีอาร์เรย์ของ Sub-documents และต้องการรวมค่าของฟิลด์เฉพาะในทุก Sub-document ให้ Unwind ก่อนแล้วค่อย Group Sum ตัวอย่างข้อมูล: คะแนนผู้เล่น > db.sumEveryFieldDemo.insertOne({ _id: 101, PlayerDetails: [ {PlayerName:John,PlayerSc

  15. คิวรี AND บนอาร์เรย์ใน MongoDB (ใช้ $all)

    ใช้ $all หาเอกสารที่อาร์เรย์มี ทุกค่า ที่ระบุ เมื่อต้องการหาเอกสารที่อาร์เรย์ฟิลด์มีสมาชิกครบทุกค่าที่กำหนด (เหมือน AND Logic) ใช้โอเปอเรเตอร์ $all ตัวอย่างข้อมูล: วิชาที่นักเรียนชอบ > db.andQueryDemo.insertOne({StudentName:Carol Taylor,FavouriteSubject:[C,Java,MongoDB,MySQL]}); > db.andQuery

  16. Regex เพื่อข้ามอักขระเฉพาะใน MongoDB

    ใช้ Regular Expression + $not กรองเอกสารที่ไม่มีอักขระเฉพาะ เมื่อต้องการหาเอกสารที่ฟิลด์ ไม่มี อักขระพิเศษ (เช่น #) ใช้ Regex แบบ Negative หรือ $not กับ Regex ตัวอย่างข้อมูล > db.regexDemo.insertOne({CustomerId:Customer#1234,CustomerName:Chris}); > db.regexDemo.insertOne({CustomerId:Customer5

  17. คำสั่ง Toggle (สลับค่า) ใน MongoDB

    สลับค่า Boolean Field (True ↔ False) ใน MongoDB MongoDB ไม่มีคำสั่ง Toggle ตรงตัว แต่สามารถทำได้โดย: 1) อ่านค่าปัจจุบัน 2) คำนวณค่าใหม่ 3) อัปเดทด้วย $set ตัวอย่างข้อมูล > db.toggleDemo.insertOne({CustomerName:John Smith,CustomerAge:28,isMarried:true}); > db.toggleDemo.insertOne({CustomerName

  18. Mongo Shell ใช้ตัวเลขเป็น Float โดยค่าเริ่มต้น? วิธีระบุ Integer ให้ชัดเจน

    MongoDB Shell จัดการตัวเลขเป็น Double (Float) โดยค่าเริ่มต้น เมื่อพิมพ์ตัวเลขใน Mongo Shell เช่น var x = 10 จะถูกเก็บเป็น Double (64-bit float) ไม่ใช่ Integer หากต้องการให้เป็น Integer จริง ต้องระบุชนิดข้อมูลชัดเจน ใช้ NumberInt() สำหรับ 32-bit Integer > var integerArrayDemo = [ NumberInt(50

  19. ตรวจสอบว่าเอกสารมีอยู่ใน MongoDB หรือไม่

    ใช้ findOne() ตรวจสอบความมีอยู่ของเอกสาร เมธอด findOne() จะคืนค่าเอกสารแรกที่ตรงเงื่อนไข (หรือ null ถ้าไม่เจอ) เหมาะสำหรับตรวจสอบว่ามีข้อมูลอยู่หรือไม่ เร็วกว่า find().count() เพราะหยุดค้นหาที่เจอตัวแรก รูปแบบคำสั่ง db.yourCollectionName.findOne({ yourFieldName: yourValue }); ตัวอย่างข้อมูล > d

  20. ดึงรายชื่อฟิลด์ (Attributes) จากออบเจ็กต์ MongoDB

    ใช้ For Loop วนลูป Key-Value ของเอกสาร ใน MongoDB Shell สามารถใช้ JavaScript for...in loop เพื่อวนอ่าน Key และ Value ของเอกสารที่ได้จาก findOne() ตัวอย่างข้อมูล > db.getAttributeListDemo.insertOne({ StudentId: 101, StudentName: John, StudentAdmissionDate: new ISODate(2019-01-12),

Total 1351 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:52/68  20-คอมพิวเตอร์/Page Goto:1 46 47 48 49 50 51 52 53 54 55 56 57 58