Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB
MongoDB
  1. เปรียบเทียบแอตทริบิวต์ของออบเจ็กต์ต่างกันในอาร์เรย์ MongoDB

    ใช้ $expr ร่วมกับ $let, $indexOfArray, $arrayElemAt เพื่อดึงออบเจ็กต์เฉพาะในอาร์เรย์มาเปรียบเทียบค่า ตัวอย่างข้อมูลทดสอบ db.demo366.insertOne({ Name : Chris, details : [ {Id : John1, value : test}, {Id : John2, value : 18}, {Id : John3, value : 20} ] }); แสดงข้

  2. การจัดเรียงข้อมูลในคอลเลกชัน MongoDB ด้วย sort()

    ใช้ sort() หลัง find() เพื่อจัดเรียงผลลัพธ์ ตัวเลข 1 = ขึ้น (A-Z, น้อยไปมาก), -1 = ลง (Z-A, มากไปน้อย) ตัวอย่างข้อมูลทดสอบ db.demo32.insertOne({Name:Carol}); แสดงข้อมูลก่อนจัดเรียง db.demo32.find(); { _id : ObjectId(5e175158cfb11e5c34d898c5), Name : Chris } { _id : ObjectId(5e17515ccfb1

  3. จัดเรียงตามความยาวอาร์เรย์ด้วย MongoDB Aggregation

    ใช้ Aggregation Pipeline: $unwind แยกอาร์เรย์, $group นับจำนวนด้วย $sum, แล้ว $sort ตามจำนวน ตัวอย่างข้อมูลทดสอบ db.demo33.insertOne({ListOfStudent:[Carol,Sam,John,Robert]}); แสดงข้อมูลทั้งหมด db.demo33.find(); { _id : ObjectId(5e17556ccfb11e5c34d898ca), ListOfStudent : [ Chris, Bob ] }

  4. อัปเดตเอกสาร MongoDB ด้วย ObjectId เท่านั้น

    ใช้ update() ร่วมกับ $set และระบุ _id เป็น ObjectId เพื่ออัปเดตเอกสารเฉพาะรายการ ตัวอย่างข้อมูลทดสอบ db.demo34.insertOne({StudentFirstName:Bob,StudentAge:20}); แสดงข้อมูลก่อนอัปเดต db.demo34.find(); { _id : ObjectId(5e1758b4cfb11e5c34d898cd), StudentFirstName : Chris, StudentAge : 24 }

  5. ค้นหาเอกสาร MongoDB ตามค่า true/false ด้วย $exists

    ใช้ $exists ร่วมกับ dot notation เพื่อตรวจสอบว่าฟิลด์ย่อยในอาร์เรย์มีอยู่หรือไม่ ซึ่งสามารถใช้เป็นเงื่อนไข true/false ได้ ตัวอย่างข้อมูลทดสอบ db.demo367.insertOne({ Id : 101, details : [ {Name : Chris, Subject : [MySQL]}, {Age : 21, CountryName : US} ], isMarried :

  6. การข้ามค่า NULL และ UNDEFINED ในคิวรี่ MongoDB

    ใช้ operator $ne (not equal) เพื่อกรองเอกสารที่ฟิลด์ไม่เป็น null หรือ undefined ตัวอย่างข้อมูลทดสอบ db.demo35.insertOne({Name:undefined}); แสดงข้อมูลทั้งหมด db.demo35.find(); { _id : ObjectId(5e175e42cfb11e5c34d898d0), Name : Chris } { _id : ObjectId(5e175e46cfb11e5c34d898d1), N

  7. การหาจำนวนค่าที่ไม่ซ้ำกัน (Distinct) ในอาร์เรย์ MongoDB

    ใช้คำสั่ง distinct() เพื่อดึงค่าที่ไม่ซ้ำกันจากฟิลด์อาร์เรย์ แล้วใช้ .length นับจำนวน ตัวอย่างข้อมูลทดสอบ db.demo36.insertOne({Names:[Chris,Bob,David]}); แสดงข้อมูลทั้งหมด db.demo36.find(); { _id : ObjectId(5e17643bcfb11e5c34d898d4), Names : [ Chris, Bob ] } { _id : ObjectId(5e17644

  8. การคิวรี่ข้อมูลจากคอลเลกชันที่ชื่อประกอบด้วยตัวอักษรและตัวเลขใน MongoDB

    เมื่อชื่อคอลเลกชันมีอักขระพิเศษ (เช่น ขีด -, จุด .) ต้องใช้ db.getCollection() หรือ db.createCollection() เพื่อสร้างและเข้าถึง สร้างคอลเลกชันชื่อซับซ้อน db.createCollection(7664734-541d-r5i5f-845575e-ghfhjrjr3747_demo368); { ok : 1 } เพิ่มข้อมูลด้วย db.getCollection() db.getCollection(7664734-54

  9. วิธีใช้ฟังก์ชัน deleteOne() ใน MongoDB

    deleteOne() ใช้สำหรับลบเอกสารสูงสุด 1 เอกสารที่ตรงกับเงื่อนไขที่ระบุ จากคอลเลกชัน ตัวอย่างข้อมูลทดสอบ db.demo363.insertOne({Name:Chris}); แสดงข้อมูลก่อนลบ db.demo363.find(); { _id : ObjectId(5e57d2c3d0ada61456dc9369), Name : Chris } { _id : ObjectId(5e57d2c7d0ada61456dc936a), Na

  10. ค้นหาเอกสารที่มีคีย์ประกอบด้วยจุด (.) ใน MongoDB

    เมื่อชื่อฟิลด์ (Key) มีจุด (.) อยู่ภายใน ไม่สามารถค้นหาได้โดยตรง ต้องใช้ Aggregation Pipeline ร่วมกับ $objectToArray, $filter และ $indexOfBytes เพื่อแปลงและกรองคีย์ที่มีจุด ตัวอย่างข้อมูลทดสอบ db.demo364.insertOne({ details : { details1.otherdetails.Name : {FirstName:David} } });

  11. การจัดเรียงข้อมูลตามฟิลด์ FirstName ใน MongoDB

    ใช้คำสั่ง sort() เพื่อจัดเรียงผลลัพธ์จาก find() ตามฟิลด์ที่ต้องการ โดยระบุ 1 สำหรับอ름ชั่น (A-Z) และ -1 สำหรับลำดับย้อนกลับ (Z-A) ตัวอย่างข้อมูลทดสอบ db.demo365.insertOne({FirstName:Bob}); แสดงข้อมูลก่อนจัดเรียง db.demo365.find(); { _id : ObjectId(5e57d5b6d0ada61456dc936f), FirstName : C

  12. การจัดเรียงข้อมูลใน Sub-array ด้วย $sort ใน MongoDB Aggregation

    เพื่อจัดเรียงข้อมูลภายใน Sub-array ต้องใช้ Aggregation Pipeline โดยทำ $unwind ก่อน แล้วค่อย $sort และ $group กลับไปเป็นอาร์เรย์ ตัวอย่างข้อมูลทดสอบ db.demo23.insertOne({ StudentDetails : [ {Name : David, Age : 23}, {Name : Adam, Age : 24} ] }); แสดงข้อมูลก่อนจัดเรียง db.d

  13. การใช้ $push กับนิพจน์คำนวณใน $group ของ MongoDB Aggregation

    ใน MongoDB Aggregation สามารถใช้ $push ร่วมกับ $cond เพื่อสร้างอาร์เรย์จากนิพจน์เงื่อนไขภายใน $group ตัวอย่างข้อมูลทดสอบ db.demo24.insertOne({Id:100,Status:false}); แสดงข้อมูลทั้งหมด db.demo24.find(); { _id : ObjectId(5e14c58722d07d3b95082e72), Id : 100, Status : true } { _id : Obje

  14. การคิวรี่ข้อมูลจากออบเจ็กต์ภายในอาร์เรย์ใน MongoDB

    เมื่อต้องการค้นหาเอกสารที่อาร์เรย์ประกอบด้วยออบเจ็กต์ที่ตรงกับเงื่อนไขหลายค่า ให้ใช้ $all ร่วมกับ dot notation ตัวอย่างข้อมูลทดสอบ db.demo25.insertOne({ Details:[ {UserId:Chris101,UserName:Chris}, {UserId:Mike102,UserName:Mike} ] }); แสดงข้อมูลทั้งหมด db.demo25.find(); {

  15. คิวรี่ MongoDB สำหรับการค้นหาแบบ LIKE

    MongoDB ไม่มีคำสั่ง LIKE โดยตรงเหมือน SQL แต่สามารถใช้ Regular Expression (Regex) แทนได้ โดยใช้รูปแบบ /pattern/ ตัวอย่างข้อมูลทดสอบ db.demo26.insertOne({StudentName:David}); แสดงข้อมูลทั้งหมด db.demo26.find(); { _id : ObjectId(5e14c9dc22d07d3b95082e79), StudentName : Chris } { _id :

  16. การใช้ $addToSet หลายครั้งในคำสั่ง update เดียวของ MongoDB

    สามารถใช้ $addToSet หลายครั้งในคำสั่ง update() เดียวกันได้ โดย MongoDB จะตรวจสอบค่าซ้ำก่อนเพิ่มเข้าไปในอาร์เรย์ ตัวอย่างข้อมูลทดสอบ db.demo27.insertOne({StudentDetails:{101:{Subject:[MySQL]}}}); { acknowledged : true, insertedId : ObjectId(5e15f9eb22d07d3b95082e80) } แสดงข้อมูลก่อนอัปเดต

  17. การใช้สัญลักษณ์จุด (.) ในชื่อคอลเลกชัน MongoDB

    MongoDB อนุญาตให้ใช้สัญลักษณ์จุด (.) ในชื่อคอลเลกชันได้ แต่ต้องใช้คำสั่ง db.getCollection() เพื่อเข้าถึง เนื่องจากไม่สามารถใช้ dot notation โดยตรงได้ (เช่น db.demo28.example จะถูกตีความผิด) ตัวอย่างการสร้างและใช้งานคอลเลกชันที่มีจุดในชื่อ db.getCollection(demo28.example).insertOne({Name:David,Age:

  18. วิธีดึงข้อมูลอาร์เรย์ในเอกสาร MongoDB

    ในการเข้าถึงข้อมูลภายในอาร์เรย์ของเอกสาร MongoDB สามารถใช้การเขียนแบบจุด (dot notation) ได้ ซึ่งเป็นวิธีที่ตรงไปตรงมาและมีประสิทธิภาพ ตัวอย่างการสร้างคอลเลกชันและข้อมูลทดสอบ db.demo29.insertOne({StudentDetails:[{StudentName:David,StudentMarks:97},{StudentName:Carol,StudentMarks:96}]}); { ackno

  19. MongoDB: หาวันที่เก่าที่สุด (Oldest Date) จาก 3 ฟิลด์ในแต่ละเอกสาร

    ใช้ $min ใน $project ของ aggregation เพื่อหาค่าต่ำสุด (เก่าที่สุด) จาก 3 ฟิลด์วันที่ สร้างคอลเลกชันตัวอย่าง: > db.demo353.insertOne({Date1:new ISODate(2019-01-10),Date2:new ISODate(2016-01-21),Date3:new ISODate(2020-04-11)}); { acknowledged : true, insertedId : ObjectId(5e568261f8647eb59e5620be)

  20. MongoDB: นับ Unique Fields จำแนกตาม Field อื่นด้วย Aggregate

    ใช้ aggregation pipeline 2 ระดับ $group เพื่อนับค่า unique ของ Name2 จำแนกตาม Name1 สร้างคอลเลกชันตัวอย่าง: > db.demo354.insertOne({Name1:Chris,Name2:David}); { acknowledged : true, insertedId : ObjectId(5e5685a6f8647eb59e5620c0) } > db.demo354.insertOne({Name1:Chris,Name2:David}); { acknowled

Total 1351 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:23/68  20-คอมพิวเตอร์/Page Goto:1 17 18 19 20 21 22 23 24 25 26 27 28 29