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

Query แบบ Case-Insensitive ใน MongoDB ด้วย Regex

ใช้ Regular Expression กับ Flag i เพื่อ Query แบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (Case-Insensitive)

ไวยากรณ์


db.yourCollectionName.find({"yourFieldName": /^yourValue$/i});

^ = เริ่มสตริง, $ = จบสตริง, i = Case-Insensitive

สร้างข้อมูลตัวอย่าง


> db.caseInsensitiveDemo.insertOne({"Name": "John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d7a67f2db199c1278e7ef") }
> db.caseInsensitiveDemo.insertOne({"Name": "JOHN"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6d7ad6f2db199c1278e7f0") }

แสดงเอกสารทั้งหมด


> db.caseInsensitiveDemo.find();

{ "_id" : ObjectId("5c6d7a67f2db199c1278e7ef"), "Name" : "John" }
{ "_id" : ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name" : "JOHN" }

Query Case-Insensitive: ค้นหา "john" (เล็กทั้งหมด)


> db.caseInsensitiveDemo.find({"Name": /^john$/i});

ผลลัพธ์: ได้ทั้ง "John" และ "JOHN"


{ "_id" : ObjectId("5c6d7a67f2db199c1278e7ef"), "Name" : "John" }
{ "_id" : ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name" : "JOHN" }

Regex /^john$/i จับคู่ "john", "John", "JOHN", "JoHn" ทุกกรณี