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

ฉันจะสร้างแบบสอบถามที่ไม่คำนึงถึงขนาดตัวพิมพ์บน MongoDB ได้อย่างไร


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

> db.caseInsensitiveDemo.insertOne({"UserName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f6fec8d10a061296a3c45")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"DAVID"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f6ff28d10a061296a3c46")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"david"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f6ffa8d10a061296a3c47")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f70008d10a061296a3c48")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"Mike"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c7f70058d10a061296a3c49")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"Sam"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f70098d10a061296a3c4a")
}
> db.caseInsensitiveDemo.insertOne({"UserName":"daVID"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f70138d10a061296a3c4b")
}

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

> db.caseInsensitiveDemo.find().pretty();

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

{ "_id" : ObjectId("5c6d7a67f2db199c1278e7ef"), "Name" : "John" }
{ "_id" : ObjectId("5c6d7ad6f2db199c1278e7f0"), "Name" : "JOHN" }
{ "_id" : ObjectId("5c7f6fec8d10a061296a3c45"), "UserName" : "David" }
{ "_id" : ObjectId("5c7f6ff28d10a061296a3c46"), "UserName" : "DAVID" }
{ "_id" : ObjectId("5c7f6ffa8d10a061296a3c47"), "UserName" : "david" }
{ "_id" : ObjectId("5c7f70008d10a061296a3c48"), "UserName" : "Carol" }
{ "_id" : ObjectId("5c7f70058d10a061296a3c49"), "UserName" : "Mike" }
{ "_id" : ObjectId("5c7f70098d10a061296a3c4a"), "UserName" : "Sam" }
{ "_id" : ObjectId("5c7f70138d10a061296a3c4b"), "UserName" : "daVID" }

นี่คือการสืบค้นเพื่อทำการสืบค้นแบบตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ใน MongoDB -

> db.caseInsensitiveDemo.find({UserName: /^david$/i } ).pretty();

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

{ "_id" : ObjectId("5c7f6fec8d10a061296a3c45"), "UserName" : "David" }
{ "_id" : ObjectId("5c7f6ff28d10a061296a3c46"), "UserName" : "DAVID" }
{ "_id" : ObjectId("5c7f6ffa8d10a061296a3c47"), "UserName" : "david" }
{ "_id" : ObjectId("5c7f70138d10a061296a3c4b"), "UserName" : "daVID" }