Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

คิวรี่ MongoDB สำหรับการค้นหาแบบ LIKE

MongoDB ไม่มีคำสั่ง LIKE โดยตรงเหมือน SQL แต่สามารถใช้ Regular Expression (Regex) แทนได้ โดยใช้รูปแบบ /pattern/

ตัวอย่างข้อมูลทดสอบ

> db.demo26.insertOne({"StudentName":"Chris"});
> db.demo26.insertOne({"StudentName":"John"});
> db.demo26.insertOne({"StudentName":"Jones"});
> db.demo26.insertOne({"StudentName":"David"});

แสดงข้อมูลทั้งหมด

> db.demo26.find();
{
    "_id" : ObjectId("5e14c9dc22d07d3b95082e79"),
    "StudentName" : "Chris"
}
{
    "_id" : ObjectId("5e14c9e022d07d3b95082e7a"),
    "StudentName" : "John"
}
{
    "_id" : ObjectId("5e14ca7222d07d3b95082e7b"),
    "StudentName" : "Jones"
}
{
    "_id" : ObjectId("5e14ca7622d07d3b95082e7c"),
    "StudentName" : "David"
}

คิวรี่แบบ LIKE ด้วย Regex

ค้นหาชื่อที่มีตัวอักษร "Jo" อยู่ในชื่อ:

> db.demo26.find({"StudentName":/Jo/});

ผลลัพธ์

{
    "_id" : ObjectId("5e14c9e022d07d3b95082e7a"),
    "StudentName" : "John"
}
{
    "_id" : ObjectId("5e14ca7222d07d3b95082e7b"),
    "StudentName" : "Jones"
}

ตัวเลือก Regex เพิ่มเติม

  • /^Jo/ - เริ่มต้นด้วย "Jo"
  • /Jo$/ - จบด้วย "Jo"
  • /jo/i - ไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (case-insensitive)

สรุป: ใช้ Regular Expression แทน LIKE ใน MongoDB ซึ่งมีความยืดหยุ่นมากกว่า