Mongodb: วิธีการสืบค้นด้วยนิพจน์ปกติ "like"


คุณสามารถใช้วิธีการต่อไปนี้เพื่อสืบค้น MongoDB ด้วยนิพจน์ทั่วไป “like”:

วิธีที่ 1: ค้นหาเอกสารที่ประกอบด้วยสตริง

 db.collection.find({ name : { $regex : /string/i }})

โปรดทราบว่า i บ่งชี้ถึงการจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

วิธีที่ 2: ค้นหาเอกสารที่ขึ้นต้นด้วยสตริง

 db.collection.find({ name : { $regex : /^string/i }}) 

วิธีที่ 3: ค้นหาเอกสารที่ลงท้ายด้วยสตริง

 db.collection.find({ name : { $regex : /string$/i }}) 

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับ ทีม เรียกเก็บเงินพร้อมเอกสารต่อไปนี้:

 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.find({ team : { $regex : /avs/i }})

แบบสอบถามนี้ส่งคืนเอกสารสองรายการต่อไปนี้:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

ตัวอย่างที่ 2: ค้นหาเอกสารที่ขึ้นต้นด้วยสตริง

เราสามารถใช้โค้ดต่อไปนี้เพื่อค้นหาเอกสารทั้งหมดที่ขึ้นต้นด้วยสตริง “gua” ในช่องตำแหน่ง:

 db.teams.find({ position : { $regex : /^gua/i }})

แบบสอบถามนี้ส่งคืนเอกสารสามรายการต่อไปนี้:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

ตัวอย่างที่ 3: ค้นหาเอกสารที่ลงท้ายด้วยสตริง

เราสามารถใช้โค้ดต่อไปนี้เพื่อค้นหาเอกสารทั้งหมดที่ลงท้ายด้วยสตริง “ward” ในช่องตำแหน่ง:

 db.teams.find({ position : { $regex : /ward$/i }})

แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:

 { _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับ $regex ได้ที่นี่

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

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