PyMongo เป็นการแจกจ่าย Python ที่มีเครื่องมือสำหรับการทำงานกับ MongoDB ในการดำเนินการค้นหา regex ด้วย PyMongo ไวยากรณ์จะเป็นดังนี้ -
db.yourCollectionName.find({'yourCollectionName':{'$regex':'^yourWords'}}).pretty(); ไวยากรณ์ข้างต้นจะให้เอกสารทั้งหมดที่ขึ้นต้นจากคำใดคำหนึ่ง
เพื่อให้เข้าใจไวยากรณ์ ให้เราสร้างคอลเลกชันด้วยเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.performRegex.insertOne({"ClientName":"Larry","ClientFolderInformation":[
"Folder 1","Folder 2","Folder 3","Folder 4","Folder 5"], "MainFolderLocation":"/MainFolder/Details/ClientFolder" });
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8a8b186cea1f28b7aa07f2")
}
> db.performRegex.insertOne({"ClientName":"Larry","ClientFolderInformation":[
"ClientFolder 1","ClientFolder 2","ClientFolder 3","ClientFolder 4","ClientFolder 5"],
"MainFolderLocation":"/MainFolder/Details/ClientFolder" });
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8a8b1d6cea1f28b7aa07f3")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −
> db.performRegex.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8a8b186cea1f28b7aa07f2"),
"ClientName" : "Larry",
"ClientFolderInformation" : [
"Folder 1",
"Folder 2",
"Folder 3",
"Folder 4",
"Folder 5"
],
"MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}
{
"_id" : ObjectId("5c8a8b1d6cea1f28b7aa07f3"),
"ClientName" : "Larry",
"ClientFolderInformation" : [
"ClientFolder 1",
"ClientFolder 2",
"ClientFolder 3",
"ClientFolder 4",
"ClientFolder 5"
],
"MainFolderLocation" : "/MainFolder/Details/ClientFolder"
} นี่คือแบบสอบถามเพื่อดำเนินการ regex
กรณีที่ 1 − แบบสอบถามด้านล่างให้เอกสารทั้งหมดที่เริ่มต้นจากคำว่า 'ClientFolder' −
> db.performRegex.find({'ClientFolderInformation':{'$regex':'^ClientFolder'}}).pretty(); ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8a8b1d6cea1f28b7aa07f3"),
"ClientName" : "Larry",
"ClientFolderInformation" : [
"ClientFolder 1",
"ClientFolder 2",
"ClientFolder 3",
"ClientFolder 4",
"ClientFolder 5"
],
"MainFolderLocation" : "/MainFolder/Details/ClientFolder"
} กรณีที่ 2 - แบบสอบถามด้านล่างให้เอกสารทั้งหมดที่เริ่มต้นจากคำว่า 'โฟลเดอร์' -
> db.performRegex.find({'ClientFolderInformation':{'$regex':'^Folder'}}).pretty(); ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8a8b186cea1f28b7aa07f2"),
"ClientName" : "Larry",
"ClientFolderInformation" : [
"Folder 1",
"Folder 2",
"Folder 3",
"Folder 4",
"Folder 5"
],
"MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}