ในการค้นหาสตริงที่มีความยาวมากกว่าค่าเฉพาะใน MongoDB ให้ใช้ตัวดำเนินการ $where ไวยากรณ์มีดังนี้ −
db.yourCollectionName.find({$where:'this.yourStringFieldName.length > yourIntegerValue'}).pretty();
เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.stringFieldLengthDemo.insertOne({"UserId":1,"UserName":"Adam Smith"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bb4b2386c62d05142a78") } > db.stringFieldLengthDemo.insertOne({"UserId":2,"UserName":"Carol Taylor"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bb562386c62d05142a79") } > db.stringFieldLengthDemo.insertOne({"UserId":3,"UserName":"James Brown"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bb5b2386c62d05142a7a") } > db.stringFieldLengthDemo.insertOne({"UserId":4,"UserName":"John Smith"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bb662386c62d05142a7b") } > db.stringFieldLengthDemo.insertOne({"UserId":5,"UserName":"David Miller"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bb892386c62d05142a7c") } > db.stringFieldLengthDemo.insertOne({"UserId":6,"UserName":"John Williams"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bbb02386c62d05142a7d") } > db.stringFieldLengthDemo.insertOne({"UserId":7,"UserName":"Chris Evans"}); { "acknowledged" : true, "insertedId" : ObjectId("5c77bbd32386c62d05142a7e") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังต่อไปนี้ −
> db.stringFieldLengthDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c77bb4b2386c62d05142a78"), "UserId" : 1, "UserName" : "Adam Smith" } { "_id" : ObjectId("5c77bb562386c62d05142a79"), "UserId" : 2, "UserName" : "Carol Taylor" } { "_id" : ObjectId("5c77bb5b2386c62d05142a7a"), "UserId" : 3, "UserName" : "James Brown" } { "_id" : ObjectId("5c77bb662386c62d05142a7b"), "UserId" : 4, "UserName" : "John Smith" } { "_id" : ObjectId("5c77bb892386c62d05142a7c"), "UserId" : 5, "UserName" : "David Miller" } { "_id" : ObjectId("5c77bbb02386c62d05142a7d"), "UserId" : 6, "UserName" : "John Williams" } { "_id" : ObjectId("5c77bbd32386c62d05142a7e"), "UserId" : 7, "UserName" : "Chris Evans" }
นี่คือแบบสอบถามเพื่อค้นหาสตริงที่มีความยาวมากกว่า 11 ใน MongoDB -
> db.stringFieldLengthDemo.find({$where:'this.UserName.length >11'}).pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" : ObjectId("5c77bb562386c62d05142a79"), "UserId" : 2, "UserName" : "Carol Taylor" } { "_id" : ObjectId("5c77bb892386c62d05142a7c"), "UserId" : 5, "UserName" : "David Miller" } { "_id" : ObjectId("5c77bbb02386c62d05142a7d"), "UserId" : 6, "UserName" : "John Williams" }