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

    ใช้ $group รวมตาม Id1 แล้ว $match 1 และ docs มี Id2 ครบทุกค่าที่ต้องการ (Intersection) ตัวอย่างข้อมูลทดสอบ db.demo393.insertOne({Id1:3,Name:Mike,Id2:101}); แสดงข้อมูลทั้งหมด db.demo393.find(); { _id : ObjectId(5e5e6dd522064be7ab44e804), Id1 : 1, Name : Chris, Id2 : 100 } { _id : ObjectI

  2. คิวรี่เอกสาร MongoDB ตามเงื่อนไขบน Sub-document

    ใช้ $expr ร่วม $let, $arrayElemAt เพื่อเข้าถึง Sub-document เฉพาะในอาร์เรย์ (เช่น ตัวสุดท้าย) แล้วตรวจสอบเงื่อนไข ตัวอย่างข้อมูลทดสอบ (details มี 2 ช่วงวันที่) db.demo394.insertOne({ details: [ {_id: 1, startDate: 2018-01-11T07:00:00.000Z, endDate: 2019-01-12T07:59:59.999Z}, {_

  3. ใช้ $lookup กับอาร์เรย์ของ ObjectId ใน MongoDB

    $lookup ทำ Left Outer Join ระหว่างคอลเลกชัน โดยระบุ from (คอลเลกชันปลายทาง), localField/foreignField หรือใช้ pipeline สำหรับเงื่อนไขซับซ้อน เช่น Join กับอาร์เรย์ ObjectId คอลเลกชันแรก: demo395 (ข้อมูลหลัก) db.demo395.insertOne({Name:David}); { _id : ObjectId(5e5e782317aa3ef9ab8ab207), Name :

  4. เพิ่มเอกสารหลายรายการพร้อมกันด้วย bulkWrite() ใน MongoDB

    ใช้ bulkWrite() เพื่อดำเนินการเขียนหลายรายการ (Insert, Update, Delete) ในคำสั่งเดียว ประหยัด Network Round-trips ตัวอย่างข้อมูลและการเตรียม Operations { op1.push({ updateOne: { filter: { Name }, update: { $set: { Value1, Value2, Name } }, upsert: tru

  5. สร้าง Full-page Tabs ด้วย CSS และ JavaScript

    ตัวอย่างโค้ดเต็มสำหรับสร้างแท็บเต็มหน้าจอ (Full-page Tabs) ที่เปลี่ยนเนื้อหาโดยไม่โหลดหน้าใหม่ ใช้ CSS จัด Layout และ JavaScript ควบคุมการแสดงผล โค้ด HTML/CSS/JavaScript สมบูรณ์ <!DOCTYPE html> <html> <head> <meta name=viewport content=width=device-width, initial-scale=1> &l

  6. สร้างดัชนีใหม่ (Rebuild Indexes) ใน MongoDB

    ใช้คำสั่ง reIndex() เพื่อสร้างดัชนีทั้งหมดในคอลเลกชันใหม่ (Drop แล้วสร้างใหม่) ช่วยแก้ไขดัชนีเสียหายหรือปรับโครงสร้าง สร้างดัชนีตัวอย่าง db.demo42.createIndex({StudentFirstName:1}); { createdCollectionAutomatically : true, numIndexesBefore : 1, numIndexesAfter : 2, ok : 1 } คำสั่ง Rebuild Indexe

  7. เก็บผลลัพธ์คิวรี่ไว้ในฐานข้อมูลชั่วคราว (Temp DB) ใน MongoDB

    ใช้ forEach() วนลูปผลลัพธ์ find() แล้ว insert() ลงคอลเลกชันอื่น (อาจเป็นใน DB เดียวกันหรือ DB อื่น) ตัวอย่างข้อมูลทดสอบ db.demo43.insertOne({StudentName:David}); แสดงข้อมูลต้นทาง db.demo43.find(); { _id : ObjectId(5e25d4b3cfb11e5c34d898e5), StudentName : Chris } { _id : ObjectId(5e25d4b

  8. วิธีดึงออบเจ็กต์ที่บันทึกแล้วใน MongoDB

    ใช้ save() บันทึกออบเจ็กต์จากตัวแปร JavaScript แล้วตัวแปรจะถูกอัปเดต _id อัตโนมัติ สร้างตัวแปรออบเจ็กต์ var studentDetails={StudentFirstName:Chris,StudentLastName:Brown,StudentAge:24}; บันทึกด้วย save() db.demo45.save(studentDetails); WriteResult({ nInserted : 1 }) แสดงตัวแปรหลังบันทึก (มี _id

  9. ค้นหาค่าในอาร์เรย์ที่มีอยู่ในอีกอาร์เรย์ และส่งกลับ Index เป็นอาร์เรย์ใหม่ใน MongoDB

    ใช้ $map ร่วม $indexOfArray เพื่อวนลูปค่าที่ต้องการค้นหา และหาตำแหน่ง (index) ในอาร์เรย์เป้าหมาย ตัวอย่างข้อมูลทดสอบ db.demo381.insertOne({Values:[20,40,30,10,60]}); แสดงข้อมูล db.demo381.find(); { _id : ObjectId(5e5b59f72ae06a1609a00b15), Values : [10, 40, 60, 30, 60] } { _id : ObjectI

  10. ใช้ $size ใน MongoDB Aggregation เพื่อหาความยาวอาร์เรย์

    ใช้ $project ร่วม $size เพื่อนับจำนวนองค์ประกอบในอาร์เรย์ (ไม่ต้อง $unwind) ตัวอย่างข้อมูลทดสอบ db.demo382.insertOne({ Name : David, details : [ {SubjectName:MySQL}, {SubjectName:MongoDB}, {SubjectName:Java} ] }); แสดงข้อมูล db.demo382.find().pretty(); {

  11. กรอง Log ที่มีคำว่า "work" ใน MongoDB ด้วย Aggregation

    ใช้ $addFields ร่วม $filter, $indexOfBytes, $toUpper เพื่อกรองอาร์เรย์เฉพาะรายการที่มีคำว่า work (ไม่สนใจตัวพิมพ์เล็ก/ใหญ่) ตัวอย่างข้อมูลทดสอบ db.demo383.insertOne({ ServerName:Jboss, ServerLogs: [ {status:Working}, {status:Stop}, {status:Worked} ] }); แสดงข้อ

  12. แสดงฟิลด์เดียวจากทุกเอกสารในคอลเลกชัน MongoDB (Projection)

    ใช้ Projection ใน find() ตัวที่สอง: ตั้งค่าฟิลด์ที่ต้องการเป็น 1 (แสดง), 0 (ซ่อน) _id ต้องตั้ง 0 โดยตรงถ้าไม่ต้องการ ตัวอย่างข้อมูลทดสอบ db.demo384.insertOne({StudentName:John Doe,StudentCountryName:UK}); แสดงข้อมูลทั้งหมด db.demo384.find(); { _id : ObjectId(5e5b67a022064be7ab44e7f2), S

  13. อัปเดตหลายองค์ประกอบในอาร์เรย์พร้อมกันด้วย All Positional Operator $[] ใน MongoDB

    ใช้ $[] (All Positional Operator) ร่วม $set เพื่ออัปเดต ทุก องค์ประกอบในอาร์เรย์ที่ระบุ ตัวอย่างข้อมูลทดสอบ (ServerLogs ทั้ง 3 เป็น InActive) db.demo385.insertOne({ServerLogs: [ {status:InActive}, {status:InActive}, {status:InActive} ]}) แสดงข้อมูลก่อน db.demo385.find().pretty(); { _id

  14. แปลงส่วนประกอบวันที่ (วัน เดือน ปี) ให้เป็น Date ใน MongoDB

    ใช้ $dateFromParts สร้าง Date Object จากส่วนประกอบ แล้ว $dateToString จัดรูปแบบสตริง ตัวอย่างข้อมูลทดสอบ db.demo386.insert({details: {Month: 02, Day: 27, Year: 2020}}); แสดงข้อมูล db.demo386.find(); { _id : ObjectId(5e5bd9a222064be7ab44e7f7), details : { Month : 2, Day : 27, Year : 2020

  15. Unwind อาร์เรย์สองตัวพร้อมกันใน MongoDB Aggregation

    ใช้ $unwind หลายขั้นตอนต่อเนื่อง เพื่อแยกอาร์เรย์หลายตัว แล้ว $match + $expr + $eq จับคู่องค์ประกอบที่ตรงกัน ตัวอย่างข้อมูลทดสอบ (มี Details1 และ Details2) db.demo387.insertOne({ Name : 101, Details1 : [ {Value:100, Value1:50, Value2:40}, {Value:200}, {Value:300}

  16. ลบองค์ประกอบจากอาร์เรย์ที่เป็น Sub-property ใน MongoDB

    ใช้ $pull ร่วม Dot Notation เพื่อลบองค์ประกอบในอาร์เรย์ที่ซ้อนอยู่ในออบเจ็กต์ (Sub-property) ตัวอย่างข้อมูลทดสอบ db.demo388.insertOne({ _id: 101, userDetails: { isMarried: false, userInfo: [{Name:Chris, Age:21}] } }); แสดงข้อมูลก่อน db.demo388.find(); { _id : 101

  17. ดึงค่าทั้งหมดจากอาร์เรย์ซ้อนมาแสดงในบรรทัดเดียวด้วย MongoDB Aggregation

    ใช้ $unwind 2 ครั้ง (แยกอาร์เรย์นอก แล้วแยกอาร์เรย์ใน) แล้ว $group + $push รวมค่าทั้งหมดเป็นอาร์เรย์เดียว ตัวอย่างข้อมูลทดสอบ (อาร์เรย์ซ้อน 2 ชั้น) db.demo389.insertOne({ details:[ {Name:[Chris,David]}, {Name:[Bob,Mike]}, {Name:[Carol,Sam]}, {Name:[David,John]}

  18. อัปเดตหลายเอกสารพร้อมกันด้วยพารามิเตอร์ multi ใน MongoDB

    ตั้งค่า multi: true ใน update() เพื่ออัปเดต ทุก เอกสารที่ตรงเงื่อนไข (Default multi: false อัปเดตแค่ตัวแรก) ตัวอย่างข้อมูลทดสอบ db.demo390.insertOne({FirstName:Chris}); แสดงข้อมูลก่อน (มี Chris 2 รายการ) db.demo390.find(); { _id : ObjectId(5e5d1f3a22064be7ab44e7fa), FirstName : Chris } {

  19. สร้างดัชนี จัดเรียง และแบ่งหน้า (Pagination) ด้วยฟิลด์กำหนดเองใน MongoDB

    สร้าง Compound Index บนฟิลด์ที่ต้องการ sort แล้วใช้ sort(), limit(), skip() สำหรับ Pagination สร้างดัชนีและข้อมูลทดสอบ db.demo373.insertOne({Name:Carol,Age:23,CountryName:AUS}); แสดงข้อมูลทั้งหมด db.demo373.find(); { _id : ObjectId(5e59ffde2ae06a1609a00aff), Name : Chris, Age : 22, CountryN

  20. จัดกลุ่มค่าตามฟิลด์อื่นด้วย $group ใน MongoDB

    ใช้ $group ร่วม $addToSet สะสมค่า แล้ว $reduce + $concatArrays รวมอาร์เรย์ย่อยเป็นอาร์เรย์เดียว ตัวอย่างข้อมูลทดสอบ (Chris มี 2 เอกสาร CountryName=US) db.demo374.insertOne({Name:Chris,HobbyDetails:[Browsing Internet,Playing Football],CountryName:US}); แสดงข้อมูลทั้งหมด db.demo374.find(); {

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