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

    ใช้ตัวดำเนินการ $where ร่วมกับ $exists และตรวจสอบจำนวนฟิลด์ด้วย Object.keys() เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: >db.veryStrictDocumentDemo.insertOne({StudentFirstName:John,StudentLastName:Doe,StudentAge:23}); { acknowledged : true, insertedId : ObjectId(5cda4bcdb50a6c6dd317adb8) } > db.ve

  2. วิธีลบสตริงออกจากอาร์เรย์ในเอกสาร MongoDB

    ใช้ตัวดำเนินการ $pull เพื่อลบค่าเฉพาะ (เช่นสตริง) ออกจากอาร์เรย์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.removeAStringDemo.insertOne({Score:[45,67,89,John,98,99,67]}); { acknowledged : true, insertedId : ObjectId(5cda5224b50a6c6dd317adbd) } แสดงเอกสาร (อาร์เรย์ Score มีทั้งตัวเลขและสตริง John

  3. วิธีเพิ่มฟิลด์ใหม่เข้าไปในซับดอกิวเมนต์ใน MongoDB

    ใช้ตัวดำเนินการ $set พร้อมสัญลักษณ์จุด (dot notation) เพื่อเพิ่มฟิลด์ใหม่เข้าไปในซับดอกิวเมนต์ ไวยากรณ์ดังนี้: db.yourCollectionName.update( {_id : yourObjectId}, {$set: { yourOuterFieldName.anyInnerFieldName: yourValue}} ); สร้างคอลเลกชันตัวอย่าง: > db.pushNewKeyDemo.insertOne({UserId:100,Us

  4. วิธีอัปเดตหลายเอกสารพร้อมกันใน MongoDB

    ใช้ตัวเลือก multi: true เพื่ออัปเดตหลายเอกสารที่ตรงกับเงื่อนไข เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.multiUpdateDemo.insertOne({ClientName:John,ClientAge:29}); { acknowledged : true, insertedId : ObjectId(5cda5bc0b50a6c6dd317adc8) } > db.multiUpdateDemo.insertOne({ClientName:Carol,Client

  5. วิธีเพิ่มรายการใหม่เข้าไปในอาร์เรย์ภายในออบเจกต์ใน MongoDB

    ใช้ตัวดำเนินการ $elemMatch ร่วมกับ $push เพื่อเพิ่มรายการเข้าไปในอาร์เรย์ที่อยู่ภายในออบเจกต์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.pushNewItemsDemo.insertOne( { _id : 1, StudentScore : 56, StudentOtherDetails : [ { StudentName : John, StudentFriendName :

  6. วิธีค้นหาเอกสารที่ผลรวมของฟิลด์มากกว่าค่าที่กำหนดใน MongoDB

    ใช้ตัวดำเนินการ $where เพื่อเปรียบเทียบผลรวมของหลายฟิลด์ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.sumOfFieldIsGreaterThanDemo.insertOne({Price1:10,Price2:50,Price3:40}); { acknowledged : true, insertedId : ObjectId(5cdd84b8bf3115999ed511e6) } > db.sumOfFieldIsGreaterThanDemo.insertOne({Pric

  7. วิธีที่มีประสิทธิภาพในการลบข้อมูลทั้งหมดออกจาก MongoDB

    หากลองใช้เมธอด drop() จะลบข้อมูลคอลเลกชันทั้งหมดรวมถึงดัชนี (indexes) ในขณะที่ remove() จะลบเฉพาะเรคคอร์ด แต่คงคอลเลกชันและดัชนีไว้ ให้ดูตัวอย่างเปรียบเทียบ: การใช้ drop() สร้างคอลเลกชันพร้อมดัชนีและข้อมูล: > db.dropWorkingDemo.createIndex({FirstName:1}); { createdCollectionAutomatically : true,

  8. วิธีค้นหาข้อมูลตามวันที่เฉพาะใน MongoDB

    สมมติว่าคุณบันทึกวันที่ล็อกอินของผู้ใช้ และต้องการนับจำนวนเรคคอร์ดในวันที่เฉพาะ ให้ใช้ตัวดำเนินการ $gte และ $lt ร่วมกับ count() เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.findDataByDateDemo.insertOne({UserName:John,UserLoginDate:new ISODate(2019-01-31)}); { acknowledged : true, insertedId : Obje

  9. วิธีตรวจสอบว่าฟิลด์มีอยู่ใน MongoDB หรือไม่

    ใช้ตัวดำเนินการ $exists เพื่อตรวจสอบว่าฟิลด์มีอยู่หรือไม่ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: >db.checkFieldExistsDemo.insertOne({StudentFirstName:John,StudentGender:Male,StudentMongoDBScore:89}); { acknowledged : true, insertedId : ObjectId(5cd909611a844af18acdffbd) } >db.checkFieldExistsD

  10. คิวรี่ MongoDB สำหรับลบองค์ประกอบอาร์เรย์ออกจากเอกสาร

    ใช้ตัวดำเนินการ $pull เพื่อลบองค์ประกอบอาร์เรย์ออกจากเอกสาร MongoDB ไวยากรณ์ดังนี้: db.yourCollectionName.update( { }, { $pull: { yourFieldName: yourValue }}, {multi:true} ); สร้างคอลเลกชันตัวอย่าง: >db.removeArrayElementsDemo.insertOne({AllPlayerName:[John,Sam,Carol,David]}); { acknowledge

  11. วิธีอัปเดตทุกองค์ประกอบในอาร์เรย์ด้วยคำนำหน้า (Prefix String)

    หากต้องการอัปเดตทุกองค์ประกอบในอาร์เรย์โดยเพิ่มคำนำหน้า (prefix string) ให้ใช้ forEach() ร่วมกับ map() เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.replaceAllElementsWithPrefixDemo.insertOne( { StudentNames : [ John, Carol ] } ); { acknowledged : true, insertedId : ObjectId

  12. วิธีดึงชื่อฟิลด์ทั้งหมดในคอลเลกชัน MongoDB

    สามารถใช้แนวคิด Map Reduce เพื่อดึงชื่อฟิลด์ทั้งหมดในคอลเลกชันได้ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง: > db.getAllFieldNamesDemo.insertOne({StudentFirstName:David,StudentAge:23}); { acknowledged : true, insertedId : ObjectId(5cd998e9b50a6c6dd317ad90) } คิวรี่แสดงเอกสารทั้งหมดด้วย find(): > d

  13. วิธีจัดเก็บผลลัพธ์ MongoDB ลงในอาร์เรย์

    หากต้องการจัดเก็บผลลัพธ์จาก MongoDB ลงในอาร์เรย์ ให้ใช้เมธอด toArray() ตามตัวอย่างด้านล่าง: var anyVariableName = db.yourCollectionName.find().toArray(); มาสร้างคอลเลกชันพร้อมเอกสารตัวอย่างกันก่อน: > db.mongoDbResultInArrayDemo.insertOne({CustomerName:David Miller,CustomerAge:24,isMarried:false})

  14. การสร้างฟิลด์ใหม่ในเอกสารที่มีอยู่แล้วใน MongoDB

    ใช้ตัวดำเนินการ $set (แนะนำ) หรือ $addToSet เพื่อเพิ่มฟิลด์ใหม่ในเอกสารที่มีอยู่แล้ว ตัวอย่างข้อมูลทดสอบ > db.createFieldDemo.insertOne({StudentFirstName: John, StudentAge: 21}); { acknowledged: true, insertedId: ObjectId(5cd99e28b50a6c6dd317ad95) } > db.createFieldDemo.insertOne({StudentFirs

  15. การใช้ find() ร่วม Dot Notation สำหรับการค้นหาแบบ Recursive ใน MongoDB

    MongoDB รองรับการค้นหาข้อมูลในอาร์เรย์ของออบเจ็กต์ (Array of Objects) โดยใช้ Dot Notation ซึ่งจะค้นหาในทุกองค์ประกอบของอาร์เรย์โดยอัตโนมัติ (คล้ายการค้นหาแบบ Recursive) ตัวอย่างข้อมูลทดสอบ (อาร์เรย์ ClientDetails) > db.findOperationDemo.insertOne({ClientDetails: [{ClientId: 101, ClientName: Chri

  16. การใช้ toLowerCase() ใน forEach เพื่ออัปเดตชื่อนักเรียนใน MongoDB

    ใช้เมธอด toLowerCase() ของ JavaScript ร่วมกับ forEach() เพื่อแปลงค่าฟิลด์ให้เป็นตัวพิมพ์เล็กทั้งหมดในคอลเลกชัน ตัวอย่างข้อมูลทดสอบ (ชื่อมีตัวพิมพ์ใหญ่-เล็กสลับกัน) > db.lowerCaseDemo.insertOne({StudentName: JOHN SMith}); { acknowledged: true, insertedId: ObjectId(5cd9a86fb50a6c6dd317ad9f) } >

  17. MongoDB 查询返回特定字段:使用 findOne() Projection

    本文演示如何使用 findOne() 配合 Projection (投影) 参数,仅返回文档中指定的特定字段,而非完整文档。 语法 db.yourCollectionName.findOne( { yourFieldName1: yourValue }, // Query Filter { yourFieldName2: 1 } // Projection: 1=包含, 0=排除 ); 创建示例数据 db.particularFieldDemo.insertOne({EmployeeName:John Doe,EmployeeAge:31,Employe

  18. MongoDB 限制集合文档数量:使用 Capped Collection

    本文介绍 MongoDB Capped Collection (固定大小集合) 特性,通过创建时指定 capped: true、size (字节上限) 和 max (文档数上限) 来自动限制集合存储的文档数量,旧文档会被自动覆盖 (FIFO)。 创建 Capped Collection 语法 db.createCollection(yourCollectionName, { capped: true, size: yourSizeInBytes, // 最大存储字节数 (含索引) max: howManyRecordsYouWant // 最大文档数量 (可选) }) 创

  19. MongoDB 计算时间戳差值 (小时):Aggregation $subtract $divide

    本文演示如何使用 MongoDB Aggregation Pipeline 计算两个 DateTime 字段的差值,并转换为小时单位。 创建示例数据 db.timestampDifferenceDemo.insertOne({ MovieBeginningTime: new ISODate(2019-05-12 04:00:00), MovieEndingTime: new ISODate(2019-05-12 07:10:00) }); { acknowledged : true, insertedId : ObjectId(5cd7ba3b6d78f205348bc645) }

  20. MongoDB 生成 ObjectId:Shell 中使用 new ObjectId()

    本文演示在 MongoDB Shell 中使用 new ObjectId() 生成新的唯一标识符,ObjectId 是 MongoDB 文档的默认主键 (_id)。 语法 new ObjectId() 在 Shell 中连续生成多个 ObjectId new ObjectId() ObjectId(5cd7bf3a6d78f205348bc64c) 每次调用都生成唯一的 ObjectId 如上所示,每次调用 new ObjectId() 都会生成一个新的、唯一的 24 位十六进制字符串 (12 字节)。 ObjectId 结构解析 (12 字节 = 24 Hex Chars) 字节

Total 1351 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:45/68  20-คอมพิวเตอร์/Page Goto:1 39 40 41 42 43 44 45 46 47 48 49 50 51