Mongodb: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน MongoDB เพื่อตรวจสอบว่าฟิลด์ใดฟิลด์หนึ่งมีสตริงเฉพาะหรือไม่:
db.collection.findOne({ name : { $regex : /string/ }})
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้กับ ทีม คอลเลกชันที่มีเอกสารต่อไปนี้:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
ตัวอย่างที่ 1: ตรวจสอบว่าฟิลด์มีสตริงหรือไม่
เราสามารถใช้โค้ดต่อไปนี้เพื่อตรวจสอบว่ามีเอกสารที่มีสตริง “avs” ในฟิลด์ทีมหรือไม่:
db.teams.findOne({ team : { $regex : /avs/ }})
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
โปรดทราบว่าฟังก์ชัน findOne() ส่งคืนเอกสารแรกในคอลเลกชันที่ตรงตามเกณฑ์การสืบค้น
ซึ่งหมายความว่าทีมอื่นๆ อาจมีสตริง “avs” ในชื่อทีมของตนด้วย แต่เอกสารที่มีชื่อทีม “Mavs” เป็นเพียงเอกสารแรกเท่านั้น
ตัวอย่างที่ 2: ตรวจสอบว่าฟิลด์มีสตริงหรือไม่ (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่)
นอกจากนี้เรายังสามารถใช้ i หลังสตริงเพื่อทำการจับคู่ โดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ตัวอย่างเช่น สมมติว่าเราใช้แบบสอบถามต่อไปนี้:
db.teams.findOne({ team : { $regex : /AVS/i }})
แบบสอบถามนี้ยังส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
ตัวอย่างที่ 3: ตรวจสอบว่าฟิลด์มีสตริงหรือไม่ (ไม่มีผลลัพธ์)
หากฟิลด์ไม่มีสตริงเฉพาะที่เราต้องการ เราก็จะได้รับ ค่าว่าง ตามนั้น
ตัวอย่างเช่น สมมติว่าเราใช้แบบสอบถามต่อไปนี้:
db.teams.findOne({ team : { $regex : /ricks/ }})
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
null
เนื่องจากไม่มีเอกสารที่มีสตริง “ricks” ในชื่อทีม เราจึงได้รับ ค่าว่าง
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับ $regex ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีค้นหา “ไม่เป็นโมฆะ” ในฟิลด์เฉพาะ
MongoDB: วิธีสืบค้นด้วยนิพจน์ทั่วไป “Like”
MongoDB: วิธีเพิ่มฟิลด์ใหม่ให้กับคอลเลกชัน
MongoDB: วิธีลบฟิลด์ออกจากแต่ละเอกสาร