คุณสามารถใช้ตัวดำเนินการ $regex เพื่อตรวจสอบว่าฟิลด์มีสตริงใน MongoDB หรือไม่ ไวยากรณ์มีดังนี้ −
db.yourCollectionName.findOne({"yourFieldName":{$regex:".*yourValue.*"}});
เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.checkFieldContainsStringDemo.insertOne({"Id":1,"Name":"John"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d762fc4e719b197a12ed") } > db.checkFieldContainsStringDemo.insertOne({"Id":2,"Name":"Johnson"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d76bfc4e719b197a12ee") } > db.checkFieldContainsStringDemo.insertOne({"Id":3,"Name":"Carol"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d774fc4e719b197a12ef") } > db.checkFieldContainsStringDemo.insertOne({"Id":4,"Name":"Mike"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d77cfc4e719b197a12f0") } > db.checkFieldContainsStringDemo.insertOne({"Id":5,"Name":"Sam"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d784fc4e719b197a12f1") } > db.checkFieldContainsStringDemo.insertOne({"Id":6,"Name":"Larry"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77d78cfc4e719b197a12f2") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −
> db.checkFieldContainsStringDemo.find();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c77d762fc4e719b197a12ed"), "Id" : 1, "Name" : "John" } { "_id" : ObjectId("5c77d76bfc4e719b197a12ee"), "Id" : 2, "Name" : "Johnson" } { "_id" : ObjectId("5c77d774fc4e719b197a12ef"), "Id" : 3, "Name" : "Carol" } { "_id" : ObjectId("5c77d77cfc4e719b197a12f0"), "Id" : 4, "Name" : "Mike" } { "_id" : ObjectId("5c77d784fc4e719b197a12f1"), "Id" : 5, "Name" : "Sam" } { "_id" : ObjectId("5c77d78cfc4e719b197a12f2"), "Id" : 6, "Name" : "Larry" }
นี่คือแบบสอบถามเพื่อตรวจสอบฟิลด์ที่มีสตริงเฉพาะใน MongoDB สตริงที่เรากำลังค้นหาในฟิลด์นี้คือ “Johnson” -
> db.checkFieldContainsStringDemo.findOne({"Name":{$regex:".*Johnson.*"}});
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c77d76bfc4e719b197a12ee"), "Id" : 2, "Name" : "Johnson" }