Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB
MongoDB
  1. ค้นหาเอกสารเมื่อไม่รู้ชื่อฟิลด์ (Unknown Keys) ใน MongoDB

    ใช้ $addFields ร่วม $objectToArray แปลงเอกสารทั้งฉบับเป็นอาร์เรย์ key-value แล้วกรองด้วย $match ตัวอย่างข้อมูลทดสอบ db.demo375.insertOne({details:{Name:David,Age:22}}); แสดงข้อมูลทั้งหมด db.demo375.find(); { _id : ObjectId(5e5a0ae42ae06a1609a00b06), details : { Name : John, Age : 23 } }

  2. ความแตกต่างระหว่าง show dbs และ show databases ใน MongoDB

    ไม่มีความแตกต่างใดๆ ทั้งสองคำสั่งทำงานเหมือนกันหมด ทั้งคู่เรียกคำสั่งภายใน listDatabases เช่นกัน คำสั่ง show dbs show dbs ผลลัพธ์ admin 0.002GB app 0.000GB business 0.000GB config 0.000GB local 0.000GB main 0.000GB my 0.001GB

  3. รันฟังก์ชันที่เก็บไว้ (Stored Function) ใน MongoDB

    MongoDB อนุญาตให้เก็บ JavaScript Function ไว้ใน System Collection system.js แล้วเรียกใช้ด้วย db.eval() (Deprecated ในเวอร์ชันใหม่) บันทึกฟังก์ชัน db.system.js.save({ _id: displayMessage, value: function (data) { return The Name is: + data; } }) WriteResult({ nMatched : 0, nUp

  4. อัปเดตข้อมูลหลัง Aggregation ใน MongoDB

    ไม่สามารถอัปเดตข้อมูลโดยตรงใน Aggregation Pipeline ได้ ต้องใช้ update() แยกต่างหาก ร่วมกับ arrayFilters สำหรับอัปเดตเฉพาะองค์ประกอบในอาร์เรย์ ตัวอย่างข้อมูลทดสอบ db.demo376.insertOne({ id : 101, details : [ {Name:Chris, Age:21, Score:45}, {Name:David, Age:23, Score:67},

  5. รวมอาร์เรย์ตัวเลขเป็นสตริงด้วย $concat ใน MongoDB Aggregation

    ใช้ $reduce ร่วม $concat และ $let เพื่อวนลูปรวมค่าในอาร์เรย์เป็นสตริงเดียว ตัวอย่างข้อมูลทดสอบ db.demo377.insertOne({ListOfIds:[1001,1002,1003,1004,1005,1006,1007]}); แสดงข้อมูล db.demo377.find().pretty(); { _id : ObjectId(5e5a73462ae06a1609a00b0e), ListOfIds : [ 1001, 1002, 1003, 1004,

  6. การจัดการ Sub-document ใน MongoDB ด้วย Dot Notation

    ใช้ Dot Notation ร่วมกับ Positional Operator $ และ Operator ต่างๆ ($inc, $set ฯลฯ) เพื่ออัปเดต Sub-document ในอาร์เรย์ ตัวอย่างข้อมูลทดสอบ db.demo378.insertOne({ Name: Chris, details: [ {id:101, Score:56}, {id:102, Score:78} ] }); แสดงข้อมูลก่อน db.demo378.find(); {

  7. Projection บนฟิลด์ซ้อนลึกเฉพาะใน MongoDB Aggregation

    ใช้ $addFields ร่วม $objectToArray, $filter, $arrayToObject เพื่อกรองและฉายเฉพาะฟิลด์ซ้อนลึกที่ต้องการ ตัวอย่างข้อมูลทดสอบ (ออบเจ็กต์ซ้อน 3 ชั้น) db.demo379.insertOne({ details1 : { details2 : { details3 : { 10 : John, 50 : Chris, 40 : David, 30 : Mike

  8. ใช้ $addToSet เพิ่มออบเจ็กต์ลงในอาร์เรย์ซ้อนลึก (Deep Nested Array) ใน MongoDB

    $addToSet เพิ่มค่าในอาร์เรย์ก็ต่อเมื่อค่ายังไม่มีอยู่ (ป้องกันซ้ำ) สามารถใช้กับอาร์เรย์ซ้อนหลายชั้นได้ด้วย Positional Operator $ ตัวอย่างข้อมูลทดสอบ db.demo380.insertOne({ details : [ {Name : Chris, details1 : []}, {Name : David, details1 : []} ] }); แสดงข้อมูลก่อน db.dem

  9. เลือก Sub-document เฉพาะใน MongoDB

    ใช้ find() ร่วมกับ Projection (การฉาย) และ Positional Operator $ เพื่อดึงเฉพาะ Sub-document ที่ตรงเงื่อนไข ตัวอย่างข้อมูลทดสอบ db.demo37.insertOne({Details:[{Name:Sam,Age:23},{Name:Robert,Age:25}]}); แสดงข้อมูลทั้งหมด db.demo37.find(); { _id : ObjectId(5e176635cfb11e5c34d898d7), Details

  10. แปลงสตริงเป็นตัวเลข (Integer) ใน MongoDB

    ใช้ parseInt() ใน JavaScript ร่วมกับ forEach() และ save() เพื่ออัปเดตค่าสตริงเป็นตัวเลขในทุกเอกสาร ตัวอย่างข้อมูลทดสอบ (ราคาเป็นสตริง) db.demo369.insertOne({Price:19548575}); แสดงข้อมูลก่อนแปลง db.demo369.find(); { _id : ObjectId(5e57e2e32ae06a1609a00aed), Price : 1000000 } { _id : Obje

  11. ดึงค่าจากอาร์เรย์ด้วย find() ใน MongoDB

    ใช้ Dot Notation ระบุฟิลด์ภายในอาร์เรย์ในเงื่อนไข find() เพื่อค้นหาเอกสารที่อาร์เรย์มีค่าตรงตามที่ต้องการ ตัวอย่างข้อมูลทดสอบ db.demo38.insertOne({ClientDetails:[{ClientId:103,ClientName:Mike}]}); แสดงข้อมูลทั้งหมด db.demo38.find(); { _id : ObjectId(5e176abccfb11e5c34d898d9), ClientDeta

  12. คิวรี่ MongoDB ค้นหาเอกสารที่อาร์เรย์ตรงกันทุกองค์ประกอบ (ไม่สนใจลำดับ)

    ใช้ $all เพื่อค้นหาเอกสารที่ฟิลด์อาร์เรย์มีองค์ประกอบครบทุกตัวที่ระบุ โดยไม่สนใจลำดับ ตัวอย่างข้อมูลทดสอบ db.demo370.insertOne({ Name : David, details : [ {Subject : Java, CountryName : AUS}, {Subject : Spring, CountryName : UK} ] }); แสดงข้อมูลทั้งหมด db.demo370.find

  13. อัปเดตรายการเดียวในอาร์เรย์ MongoDB และเพิ่มค่าด้วย $inc

    ใช้ Positional Operator $ ร่วมกับ $inc เพื่ออัปเดตเฉพาะองค์ประกอบในอาร์เรย์ที่ตรงเงื่อนไข ตัวอย่างข้อมูลทดสอบ db.demo39.insertOne({ProductDetails:[{ProductName:Product-3,ProductPrice:145}]}); แสดงข้อมูลก่อนอัปเดต db.demo39.find(); { _id : ObjectId(5e176d54cfb11e5c34d898df), ProductDetai

  14. แสดงรายชื่อคอลเลกชันในฐานข้อมูล MongoDB เฉพาะฐานข้อมูล

    ใช้คำสั่ง use <database> สลับฐานข้อมูล แล้ว db.getCollectionNames() เพื่อดูรายชื่อคอลเลกชันทั้งหมด คำสั่ง use yourDatabaseName; db.getCollectionNames(); ตัวอย่าง: สลับไปฐานข้อมูล web และแสดงคอลเลกชัน db.getCollectionNames(); ผลลัพธ์ (ตัวอย่าง) [ 2015-myCollection, 2015-yourCollecti

  15. ค้นหาข้อมูลตามฟิลด์เฉพาะใน MongoDB

    ใช้ $or ใน find() เพื่อค้นหาเอกสารที่ตรงกับเงื่อนไขใดเงื่อนไขหนึ่งจากหลายฟิลด์ ตัวอย่างข้อมูลทดสอบ db.demo371.insertOne({Name:Mike,CountryName:US}); แสดงข้อมูลทั้งหมด db.demo371.find(); { _id : ObjectId(5e57f6982ae06a1609a00af2), Name : David, CountryName : US } { _id : ObjectId(5e5

  16. สร้างออบเจ็กต์ใหม่และดึงข้อมูลที่บันทึกแล้วใน MongoDB

    ใช้คำสั่ง save() เพื่อบันทึกออบเจ็กต์ (insert ใหม่หรือ update ถ้ามี _id) และออบเจ็กต์ตัวแปรจะถูกอัปเดต _id อัตโนมัติ สร้างออบเจ็กต์ตัวแปร var studentDetails={StudentName:Chris,ListOfMarks:[56,78,89],ListOfSubject:[MySQL,Java,MongoDB]}; บันทึกด้วย save() db.demo40.save(studentDetails); WriteResul

  17. การเปลี่ยน Primary Key (_id) ในคอลเลกชัน MongoDB

    MongoDB ไม่รองรับการเปลี่ยน __id โดยตรง ต้องลบเอกสารเก่าและแทรกใหม่ (insert) จะได้ _id ใหม่อัตโนมัติ ตัวอย่างข้อมูลทดสอบ db.demo41.insertOne({StudentName:Carol}); แสดงข้อมูลก่อน (มี _id เดิม) db.demo41.find(); { _id : ObjectId(5e25ce4acfb11e5c34d898e3), StudentName : Carol } คำสั่งเปลี่

  18. การใช้ $ifNull ใน MongoDB Aggregation

    $ifNull ประเมินนิพจน์ และคืนค่านิพจน์นั้นถ้าไม่ใช่ null มิฉะนั้นคืนค่าที่กำหนดไว้ (default value) ตัวอย่างข้อมูลทดสอบ db.demo372.insertOne({FirstName:null}); แสดงข้อมูลทั้งหมด db.demo372.find(); { _id : ObjectId(5e591aea2ae06a1609a00af6), FirstName : Chris } { _id : ObjectId(5e591aef2ae

  19. ค้นหาเอกสารเฉพาะเมืองในคอลเลกชัน MongoDB

    ใช้ find() ระบุเงื่อนไขฟิลด์ City เพื่อดึงเอกสารที่ตรงตามเมืองที่ต้องการ ตัวอย่างข้อมูลทดสอบ db.demo30.insertOne({City:Los Angeles}); แสดงข้อมูลทั้งหมด db.demo30.find(); { _id : ObjectId(5e174ceccfb11e5c34d898bd), City : New York } { _id : ObjectId(5e174d0ecfb11e5c34d898be), City : Los

  20. บังคับให้ MongoDB ใช้ BasicCursor แทน Index ด้วย hint()

    ใช้ hint() ระบุ {$natural: 1} เพื่อบังคับให้ MongoDB ทำ Full Collection Scan (BasicCursor) แทนที่จะใช้ดัชนี สร้างดัชนีและข้อมูลทดสอบ db.demo31.insertOne({StudentFirstName:James}); แสดงข้อมูลทั้งหมด db.demo31.find(); { _id : ObjectId(5e174f8fcfb11e5c34d898c1), StudentFirstName : John } {

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