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: วิธีลบฟิลด์ออกจากแต่ละเอกสาร

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *