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

เป็นไปได้ไหมที่จะสร้างแบบสอบถามที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน MongoDB?


ได้ คุณสามารถใช้ regexp เพื่อสร้างแบบสอบถามที่ไม่คำนึงถึงขนาดตัวพิมพ์ใน MongoDB ไวยากรณ์มีดังนี้:

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

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสารบางส่วน แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้:

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

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้ find() แบบสอบถามมีดังนี้:

> db.caseInsensitiveDemo.find();

ต่อไปนี้เป็นผลลัพธ์:

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

นี่คือการสืบค้นเพื่อสร้างการสืบค้นที่ไม่คำนึงถึงขนาดตัวพิมพ์:

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

ต่อไปนี้เป็นผลลัพธ์:

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