Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB
MongoDB
  1. วิธีเปลี่ยนชื่อฟิลด์ _id หลัง Aggregation ใน MongoDB ($project)

    ใช้ Stage $project ใน Aggregation Pipeline เพื่อ rename ฟิลด์ _id เป็นชื่ออื่น (เช่น mainId) รูปแบบคำสั่ง db.collection.aggregate([ { $project: { _id: 0, // ซ่อน _id เดิม newFieldName: $_id, // สร้างฟิลด์ใหม่จากค่า _id // ฟิลด์อื่นที่ต้องการ }} ]); ตัวอย่

  2. วิธีดึงเฉพาะฟิลด์ _id ใน MongoDB (Projection)

    ใช้ Projection (พารามิเตอร์ที่ 2 ของ find) ระบุ { _id: 1 } เพื่อดึงเฉพาะฟิลด์ _id รูปแบบคำสั่ง db.collection.find({}, { _id: 1 }).pretty(); {} = Query filter (ว่าง = ทุกเอกสาร) { _id: 1 } = Include เฉพาะ _id (0 = exclude) ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.singlePropertyIdDemo.in

  3. วิธีนับจำนวนเอกสารในคอลเลกชัน MongoDB ด้วย count() และ countDocuments()

    ใช้เมธอด count() (Legacy) หรือ countDocuments() (Modern) เพื่อนับจำนวนเอกสารในคอลเลกชัน รูปแบบคำสั่ง วิธีเก่า (MongoDB Shell) let myCollection = db.getCollection(collectionName); myCollection.count(); วิธีใหม่ (แนะนำ MongoDB 4.0+) // นับทั้งหมด db.collection.countDocuments({}); // นับตามเงื่อนไข

  4. วิธี Upsert ใน MongoDB: Insert ถ้าไม่มี Update ถ้ามีอยู่แล้ว (Unique Value)

    ใช้ Upsert (Update + Insert) ด้วย option { upsert: true } ในคำสั่ง update() เพื่อ Insert ใหม่ถ้ายังไม่มี หรือ Update ถ้ามีอยู่แล้ว รูปแบบคำสั่ง db.collection.update( { queryCondition }, { $set: { field: value } }, { upsert: true } ); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลเริ่มต้น > db.o

  5. วิธีเพิ่มค่า (Increment) ใน Nested Array ของ MongoDB ด้วย Positional Operator $

    ใช้ Positional Operator ($) ร่วมกับ $inc เพื่อเพิ่มค่าในฟิลด์ที่อยู่ภายในอาร์เรย์ (Nested Array) โดยระบุเงื่อนไข match element รูปแบบคำสั่ง db.collection.update( { outerField.innerField: matchValue }, { $inc: { outerField.$.targetField: incrementValue } } ); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อ

  6. วิธีหาโพสต์เก่าสุดและใหม่สุดใน MongoDB ด้วย sort() และ limit()

    ใช้ sort() ร่วมกับ limit(1) เพื่อหาเอกสารที่มีวันที่เก่าสุด (Oldest) หรือใหม่สุด (Youngest/Recent) รูปแบบคำสั่ง // เก่าสุด (Oldest) - เรียง ASC (1) db.collection.find().sort({ dateField: 1 }).limit(1); // ใหม่สุด (Youngest/Recent) - เรียง DESC (-1) db.collection.find().sort({ dateField: -1 }).limi

  7. วิธีใช้ $pull และ $addToSet พร้อมกันใน MongoDB (Bulk Operations)

    สามารถทำ $pull (ลบ) และ $addToSet (เพิ่มถ้าไม่ซ้ำ) พร้อมกันในคำสั่งเดียวได้โดยใช้ Bulk Operations (initializeOrderedBulkOp()) แนวคิด $pull - ลบ element ที่ตรงเงื่อนไขออกจากอาร์เรย์ $addToSet - เพิ่ม element เข้าอาร์เรย์ถ้ายังไม่มี (unique) Bulk Op = จับกลุ่มหลาย operation รันพร้อมกัน atomic ตัวอ

  8. วิธีค้นหาข้อความใน Double Nested Array ของ MongoDB ด้วย Dot Notation

    ใช้ Dot Notation เพื่อ Query เข้าไปใน Double Nested Array (อาร์เรย์ซ้อนอาร์เรย์) ได้โดยตรง โครงสร้างข้อมูลตัวอย่าง StudentDetails: [ { ProjectName: Online Banking, ProjectDetails: [ // Level 2 Array { TechnologyUsed: Java }, { TechnologyUsed: My

  9. วิธีล้างข้อมูลใน Nested Array ของ MongoDB ด้วย $set

    ใช้ operator $set กำหนดค่าให้อาร์เรย์เป็นค่าว่าง [] เพื่อล้างข้อมูลใน Nested Array ทั้งหมด รูปแบบคำสั่ง db.collection.update( { query }, { $set: { nestedArrayField: [] } } ); ตัวอย่าง: Nested Array 2 ระดับ 1. สร้างข้อมูลตัวอย่าง > db.clearingItemsInNestedArrayDemo.insertOne({ Stude

  10. วิธีตรวจสอบว่าเอกสารมีอยู่ใน MongoDB หรือไม่ (Return True/False)

    ใช้ find() ร่วมกับ count() (หรือ countDocuments() ในเวอร์ชันใหม่) เพื่อตรวจสอบว่าเอกสารมีอยู่หรือไม่ คืนค่า Boolean รูปแบบคำสั่ง 0; ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.documentExistsOrNotDemo.insertOne({UserId:101,UserName:John}); > db.documentExistsOrNotDemo.insertOne({UserId:1

  11. วิธีค้นหาเอกสารใน MongoDB ยกเว้นเงื่อนไขที่กำหนด ($ne, $nin)

    ใช้ operator $ne (Not Equal) สำหรับเงื่อนไขเดียว และ $nin (Not In) สำหรับหลายเงื่อนไข เพื่อดึงเอกสารที่ ไม่ตรงกับค่าที่ระบุ รูปแบบคำสั่ง Case 1: ยกเว้นค่าเดียว ($ne) db.collection.find({ fieldName: { $ne: excludedValue } }).pretty(); Case 2: ยกเว้นหลายค่า ($nin) db.collection.find({ fieldName: {

  12. วิธีลบดัชนีทั้งหมดจากทุกคอลเลกชันใน MongoDB Database

    ใช้ getCollectionNames() วนลูปพร้อม runCommand({ dropIndexes: ..., index: * }) เพื่อลบดัชนีทั้งหมด (ยกเว้น _id) รูปแบบคำสั่ง db.getCollectionNames().forEach(function(collectionName) { db.runCommand({ dropIndexes: collectionName, index: * }); }); ตัวอย่างเต็มรูปแบบ 1. ตรวจสอบ database ปัจจุบัน

  13. วิธีสร้างดัชนี (Index) ใน MongoDB ด้วย ensureIndex() และ createIndex()

    ดัชนี (Index) ช่วยให้การ query เร็วขึ้น ใช้ createIndex() (เวอร์ชันใหม่) หรือ ensureIndex() (เวอร์ชันเก่า/ยังรองรับ) รูปแบบคำสั่ง // เวอร์ชันใหม่ (แนะนำ) db.collection.createIndex({ fieldName: 1 }, { unique: true }); // เวอร์ชันเก่า (ยังทำงานได้) db.collection.ensureIndex({ fieldName: 1 }, { uniqu

  14. วิธีหาค่าที่ซ้ำกัน (Non-Distinct) ในฟิลด์ของ MongoDB ด้วย Aggregation

    ใช้ Aggregation Pipeline กับ $group และ $match เพื่อหาค่าฟิลด์ที่ปรากฏซ้ำ (Non-distinct values) รูปแบบ Pipeline db.collection.aggregate([ { $group: { _id: $fieldName, count: { $sum: 1 } } }, { $match: { count: { $gt: 1 } } } ]) ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง (มี UserName ซ้ำ) &

  15. วิธีค้นหาหลายฟิลด์หลายค่าใน MongoDB ด้วย $text และ $search

    ใช้ Text Index ร่วมกับ operator $text และ $search เพื่อค้นหาข้อความหลายคำในหลายฟิลด์พร้อมกัน ข้อกำหนดเบื้องต้น ต้องสร้าง Text Index ก่อน: db.collectionName.createIndex({ field1: text, field2: text }) ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.searchMultipleFieldsDemo.insertOne({_id:100,Fir

  16. วิธีเข้าถึง Nested Object ใน MongoDB ด้วย Dot Notation

    MongoDB รองรับการเข้าถึงฟิลด์ใน Nested Object (Object ซ้อน Object) โดยใช้ Dot Notation ทั้งใน query และ projection รูปแบบ Dot Notation parentField.childField.grandChildField ตัวอย่าง: Nested Object 4 ระดับ 1. สร้างข้อมูลตัวอย่าง > db.nestedObjectDemo.insertOne({ Student : { Student

  17. วิธีตรวจสอบว่า MongoDB ติดตั้งเป็น 32-bit หรือ 64-bit

    ใช้คำสั่ง buildInfo ผ่าน db.runCommand() หลังจากสลับไปที่ database admin ขั้นตอนการตรวจสอบ 1. สลับไป database admin > use admin switched to db admin 2. รันคำสั่ง buildInfo > db.runCommand(buildInfo); หรือ > db.runCommand({ buildInfo: 1 }); 3. ผลลัพธ์ตัวอย่าง (MongoDB 64-bit) { versi

  18. วิธีลบเอกสารใน MongoDB ตาม _id ด้วย remove()

    ใช้เมธอด remove() ร่วมกับ ObjectId เพื่อลบเอกสารเฉพาะรายการตาม _id รูปแบบคำสั่ง db.collectionName.remove({ _id: ObjectId(yourObjectId) }); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.removeDocumentOnBasisOfId.insertOne({UserName:Larry,UserAge:23,UserCountryName:US}); > db.removeDocumentO

  19. การใช้ NOT และ AND พร้อมกันใน MongoDB: ทฤษฎีและตัวอย่าง

    MongoDB รองรับการรวม operator $not และ $and (หรือ logic NOT X AND NOT Y) ได้ โดยเทียบเท่ากับ NOT (X AND Y) ตามกฎของ De Morgan ตรรกะทางคณิตศาสตร์ (De Morgans Law) NOT X AND NOT Y = NOT (X AND Y) NOT X OR NOT Y = NOT (X AND Y) // เทียบเท่ากัน ถ้า X และ Y เป็นจริงทั้งคู่ → ผลลัพธ์เป็นเท็จ ถ้า X หร

  20. วิธีค้นหาสตริงที่มีอักขระพิเศษใน MongoDB ด้วย Regex Escape

    เมื่อค้นหาสตริงที่มีอักขระพิเศษ (Special Characters) ใน MongoDB ต้องใช้ Backslash (\) เพื่อ Escape อักขระเหล่านั้นใน Regular Expression อักขระที่ต้อง Escape ใน Regex . * + ? ^ $ { } [ ] ( ) | \ / ตัวอย่าง: ค้นหาสตริงที่มีเครื่องหมาย $ 1. สร้างข้อมูลตัวอย่าง (UserId มี $) > db.searchDocumentWit

Total 1351 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:59/68  20-คอมพิวเตอร์/Page Goto:1 53 54 55 56 57 58 59 60 61 62 63 64 65