Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB
MongoDB
  1. MongoDB: ไม่สามารถคืนค่า Embedded Document เพียงอย่างเดียวได้ (แต่สามารถกรองได้)

    MongoDB ไม่สามารถคืนค่าเฉพาะ Embedded Document ที่ตรงเงื่อนไขได้โดยตรง การ query บนอาร์เรย์ของ Embedded Document จะคืนเอกสารทั้งฉบับที่มี element ตรงเงื่อนไข ตัวอย่างปัญหา 1. สร้างข้อมูลที่มีอาร์เรย์ของ Embedded Document > db.queryToEmbeddedDocument.insertOne({ UserName: Larry, PostDeta

  2. วิธีดึงเอกสารแรกจาก Cursor ใน MongoDB ด้วย findOne()

    ใช้เมธอด findOne() เพื่อดึงเอกสารแรกที่ตรงกับเงื่อนไข (หรือเอกสารแรกในคอลเลกชันถ้าไม่ระบุเงื่อนไข) รูปแบบคำสั่ง // เอกสารแรกในคอลเลกชัน db.collectionName.findOne(); // เอกสารแรกที่ตรงเงื่อนไข db.collectionName.findOne({ fieldName: value }); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.getFi

  3. วิธีดึงข้อมูลฝังตัว (Embedded Data) ในเอกสาร MongoDB

    MongoDB รองรับการจัดเก็บข้อมูลแบบ Nested/Embedded Document สามารถดึงเฉพาะส่วนที่ต้องการได้โดยใช้ Dot Notation ใน projection รูปแบบคำสั่ง db.collectionName.find({}, { outerField.innerField: 1 }).pretty(); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลที่มี Embedded Document > db.embeddedCollectionDemo.inser

  4. วิธีดูรายชื่อคอลเลกชันทั้งหมดจากทุกฐานข้อมูลใน MongoDB

    ใช้คำสั่ง listDatabases ผ่าน database admin แล้ววนลูปดึงชื่อคอลเลกชันจากแต่ละ database ขั้นตอนการทำงาน 1. สลับไปที่ database admin และดึงรายชื่อ database ทั้งหมด > switchDatabaseAdmin = db.getSiblingDB(admin); > allDatabaseName = switchDatabaseAdmin.runCommand({ listDatabases: 1 }).databases

  5. วิธีค้นหาเอกสารที่มีค่า FALSE เท่านั้นใน MongoDB

    ใช้ operator $ne (Not Equal) เพื่อกรองเอกสารที่มีค่า boolean field เป็น false รูปแบบคำสั่ง db.collectionName.find({ booleanField: { $ne: true } }); หรือระบุเฉพาะค่า false โดยตรง: db.collectionName.find({ booleanField: false }); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.translateDefinition

  6. วิธีดึงค่าที่ไม่ซ้ำกัน (Distinct) จากฟิลด์อาร์เรย์ใน MongoDB

    ใช้เมธอด distinct() เพื่อดึงค่าที่ไม่ซ้ำกันจากฟิลด์อาร์เรย์ทั่วทั้งคอลเลกชัน รูปแบบคำสั่ง db.collectionName.distinct(arrayFieldName); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง > db.distinctAggregation.insertOne({UserName:Larry,UserPost:[Hi,Hello]}); > db.distinctAggregation.insertOne({UserN

  7. วิธีเพิ่มรายการใหม่เข้าไปในอาร์เรย์ของเอกสาร MongoDB ด้วย $push

    ใช้ operator $push ร่วมกับคำสั่ง update() เพื่อเพิ่มค่าใหม่เข้าไปในฟิลด์ที่เป็นอาร์เรย์ รูปแบบคำสั่ง db.collectionName.update( { query_condition }, { $push: { arrayFieldName: newValue } } ); ตัวอย่างเต็มรูปแบบ 1. สร้างข้อมูลตัวอย่าง db.updateDemo.insertOne({StudentName:Chris,StudentCoreS

  8. วิธีวนลูปผ่านทุกคอลเลกชันใน MongoDB และรันคำสั่งอัตโนมัติ

    สามารถใช้ getCollectionNames() ร่วมกับ forEach() เพื่อวนลูปผ่านทุกคอลเลกชันในฐานข้อมูลปัจจุบันและรันคำสั่งที่ต้องการ รูปแบบคำสั่ง db.getCollectionNames().forEach(function(collectionName) { var latestDoc = db[collectionName].find().sort({_id: -1}).limit(1); if (latestDoc.hasNext()) {

  9. MongoDB เรียงลำดับเอกสารอย่างไร? ทำความเข้าใจ $natural order และการจัดเรียงแบบกำหนดเอง

    MongoDB จัดเก็บและส่งคืนเอกสารในลำดับตามการเขียนข้อมูล (Insertion Order) โดยค่าเริ่มต้น ใช้ operator $natural เพื่อควบคุมลำดับนี้ ลำดับธรรมชาติ ($natural order) db.yourCollectionName.find().sort({ $natural: 1 }); // 1 = เก่าสุดก่อน (ASC) db.yourCollectionName.find().sort({ $natural: -1 }); // -1 =

  10. วิธีย้ายข้อมูลระหว่างฐานข้อมูล MongoDB: คัดลอกเอกสารจาก DB หนึ่งไปอีก DB

    ใน MongoDB สามารถสลับระหว่างฐานข้อมูลได้ด้วยคำสั่ง use และคัดลอกข้อมูลจากคอลเลกชันในฐานข้อมูลหนึ่งไปยังอีกฐานข้อมูลหนึ่งได้ ขั้นตอนการย้ายข้อมูล 1. สร้างข้อมูลต้นทาง (ใน database test) > db.insertOneRecordDemo.insertOne({UserName:Larry,UserAge:23}); { acknowledged : true, insertedId : ObjectId(

  11. การทำความเข้าใจโครงสร้างข้อมูลใน MongoDB: ไม่มีคอลัมน์ มีแค่คอลเลกชันและเอกสาร

    MongoDB เป็นฐานข้อมูลแบบ Schema-less (ไม่มีโครงสร้างคงที่) จึงไม่มีแนวคิดของ ตาราง (Table) หรือ คอลัมน์ (Column) เหมือนฐานข้อมูลเชิงสัมพันธ์ (Relational Database) แทนที่จะเป็น MongoDB ใช้แนวคิดของ คอลเลกชัน (Collection) และ เอกสาร (Document) ความแตกต่างหลัก Collection = คล้ายกับ Table แต่ไม่บังคับ

  12. วิธีดึงอาร์เรย์ของ _id ใน MongoDB

    ใน MongoDB ฟิลด์ _id เป็นฟิลด์ที่จำเป็นและทำหน้าที่เป็น Primary Key ทุกเอกสารที่จัดเก็บในคอลเลกชันต้องมี _id ที่ไม่ซ้ำกัน รูปแบบคำสั่งสำหรับดึง _id หลายค่า db.yourCollectionName.find({ _id : { $in : [value1, value2, value3, ...] } } ); ตัวอย่างการใช้งาน สร้างคอลเลกชันและเพิ่มเอกสารตัวอย่าง: > d

  13. สร้าง Double Nested Array ใน MongoDB

    โครงสร้างอาร์เรย์ซ้อนอาร์เรย์ MongoDB รองรับการเก็บอาร์เรย์ภายในอาร์เรย์ (Nested Array) ได้ไม่จำกัดระดับ ตัวอย่าง: ข้อมูลนักเรียน โปรเจกต์ เทคโนโลยี สร้างคอลเลกชัน doubleNestedArrayDemo: > db.doubleNestedArrayDemo.insertOne({ StudentId: 1000, StudentName: Larry, StudentDetails: [

  14. ค้นหาเอกสารด้วย _id ใน MongoDB

    ใช้ ObjectId() ในเงื่อนไข find() เพื่อค้นหาเอกสารด้วย _id ต้องห่อค่า String ด้วย ObjectId() ไม่อาจใช้ String ตรงๆ ได้ ไวยากรณ์ db.yourCollectionName.find({_id: ObjectId(yourId)}).pretty(); ตัวอย่าง สร้างคอลเลกชัน searchDocumentDemo 6 รายการ: > db.searchDocumentDemo.insertOne({UserId:1,UserName:La

  15. แทรก DateTime ปัจจุบันใน MongoDB ด้วย $setOnInsert

    ใช้ $setOnInsert ใน Upsert โอเปอเรเตอร์ $setOnInsert ตั้งค่าฟิลด์เฉพาะเมื่อมีการ insert ใหม่ (upsert: true) ไม่ต้องทำเมื่อ update existing document ตัวอย่าง สร้างคอลเลกชัน addCurrentDateTimeDemo มีข้อมูลเดิม: > db.addCurrentDateTimeDemo.insertOne({StudentName:John,StudentAdmissionDate:new Date(20

  16. หาค่าซ้ำของฟิลด์ใน MongoDB ด้วย Aggregation

    ใช้ $group และ $match หา Duplicate รวมเอกสารตามฟิลด์เป้าหมาย นับจำนวน ($sum: 1) แล้วกรองที่มากกว่า 1 ตัวอย่างข้อมูล สร้างคอลเลกชัน findAllNonDistinctDemo มี UserName ซ้ำ: > db.findAllNonDistinctDemo.insertOne({UserName:John,UserAge:28}); > db.findAllNonDistinctDemo.insertOne({UserName:Larry,Us

  17. เพิ่มค่าใน Nested Object ของ MongoDB ด้วย $inc

    ใช้ $inc กับ Positional Operator $ เมื่อต้องเพิ่มค่าในฟิลด์ภายในออบเจกต์ที่อยู่ในอาร์เรย์ ใช้ $inc ร่วมกับ $ (positional operator) เพื่อระบุตำแหน่งที่ match ตัวอย่าง สร้างคอลเลกชัน incrementValueDemo: > db.incrementValueDemo.insertOne({ StudentName:Larry,StudentCountryName:US, StudentDeta

  18. เทียบเท่า SELECT column1, column2 FROM table ใน MongoDB

    ใช้ Projection ใน find() MongoDB ใช้พารามิเตอร์ที่ 2 ของ find() เพื่อระบุฟิลด์ที่ต้องการ (SELECT) คล้าย SQL ไวยากรณ์ db.yourCollectionName.find({}, {_id: 1, column1: 1, column2: 1}).pretty(); ตัวอย่าง สร้างคอลเลกชัน equivalentForSelectColumn1Column2Demo: > db.equivalentForSelectColumn1Column2Demo

  19. เปรียบเทียบฟิลด์ใน MongoDB Aggregation ด้วย $cmp

    ใช้ $cmp ใน $project แล้ว $match โอเปอเรเตอร์ $cmp เปรียบเทียบค่าสองฟิลด์ คืนค่า: 1 (มากกว่า), 0 (เท่ากัน), -1 (น้อยกว่า) ตัวอย่าง สร้างคอลเลกชัน matchBetweenFieldsDemo: > db.matchBetweenFieldsDemo.insertOne({FirstValue:40,SecondValue:70}); > db.matchBetweenFieldsDemo.insertOne({FirstValue:20,

  20. การ Cast ชนิดข้อมูลใน MongoDB Query

    ใช้ JavaScript ใน find() เพื่อ Cast MongoDB สามารถใช้ JavaScript expression ใน find() Number) ตัวอย่าง สร้างคอลเลกชัน castingDemo ฟิลด์ Amount เก็บเป็น String: > db.castingDemo.insertOne({Amount:200}); > db.castingDemo.insertOne({Amount:100}); > db.castingDemo.insertOne({Amount:110}); >

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