Latest web development tutorials
×

MongoDB หลักสูตร

MongoDB หลักสูตร NoSQL แนะนำโดยย่อ MongoDB แนะนำโดยย่อ Window ติดตั้ง MongoDB Linux ติดตั้ง MongoDB MongoDB การแปลความหมายของแนวคิด MongoDB สัมพันธ์ MongoDB การสร้างฐานข้อมูล MongoDB ลบฐานข้อมูล MongoDB แทรกเอกสาร MongoDB การปรับปรุงเอกสาร MongoDB การลบเอกสาร MongoDB เอกสารแบบสอบถาม MongoDB ผู้ประกอบการที่มีเงื่อนไข MongoDB $type ผู้ประกอบการ MongoDB Limit & Skip MongoDB ลำดับ MongoDB ดัชนี MongoDB การรวมตัว MongoDB สำเนา MongoDB ชิ้น MongoDB สำรองและกู้คืน MongoDB หน้าจอ MongoDB Java MongoDB PHP กระจาย MongoDB PHP MongoDB PHP7

MongoDB การสอนที่ทันสมัย

MongoDB ความสัมพันธ์ MongoDB อ้างอิงฐานข้อมูล MongoDB ครอบคลุมแบบสอบถามดัชนี MongoDB การวิเคราะห์แบบสอบถาม MongoDB การดำเนินงานของอะตอม MongoDB การจัดทำดัชนีขั้นสูง MongoDB ข้อ จำกัด ของดัชนี MongoDB ObjectId MongoDB Map Reduce MongoDB ค้นหาข้อความเต็ม MongoDB นิพจน์ปกติ MongoDB เครื่องมือการจัดการ MongoDB GridFS MongoDB ชุดถาวร MongoDB การเจริญเติบโตอัตโนมัติ

MongoDB regex

การแสดงออกปกติจะใช้ในการอธิบายการใช้งานของสายเดียวให้สอดคล้องกับชุดของประโยคสตริงกฎการแข่งขัน

หลายภาษาโปรแกรมสนับสนุนการใช้การแสดงออกปกติสำหรับการดำเนินงานสตริง

MongoDB ใช้ประกอบ $ regex การตั้งค่าการจับคู่สายแสดงออกปกติ

MongoDB ใช้ PCRE (Perl เข้ากันได้นิพจน์ปกติ) เป็นภาษาที่แสดงออกปกติ

ซึ่งแตกต่างจากการค้นหาแบบเต็มเราจะใช้การแสดงออกปกติไม่จำเป็นต้องทำกำหนดค่าใด ๆ

พิจารณาเอกสารชุดโครงสร้างต่อไปนี้โพสต์เอกสารที่มีเนื้อหาของบทความและฉลาก:

{
   "post_text": "enjoy the mongodb articles on tutorialspoint",
   "tags": [
      "mongodb",
      "tutorialspoint"
   ]
}

ใช้นิพจน์ปกติ

คำสั่งดังต่อไปนี้ใช้นิพจน์ปกติจะพบบทความประกอบด้วยสตริง w3cschool.cc:

>db.posts.find({post_text:{$regex:"w3cschool.cc"}})

แบบสอบถามดังกล่าวยังสามารถเขียนเป็น:

>db.posts.find({post_text:/w3cschool.cc/})

กรณีตายแสดงออกปกติ

หากคุณต้องการที่จะดึงกรณีตายเราสามารถตั้งค่าตัวเลือกเป็น $ $ i

คำสั่งดังต่อไปนี้จะได้พบกับกรณีตายสตริง w3cschool.cc:

>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})

คอลเลกชันจะกลับข้อมูลทั้งหมดที่มี w3cschool.cc สตริงที่ไม่กรณีที่สำคัญ:

{
   "_id" : ObjectId("53493d37d852429c10000004"),
   "post_text" : "hey! this is my post on  W3Cschool.cc", 
   "tags" : [ "tutorialspoint" ]
} 

องค์ประกอบมากมายใช้นิพจน์ปกติ

นอกจากนี้เรายังสามารถใช้นิพจน์ปกติในเขตอาร์เรย์เพื่อค้นหาเนื้อหา นี้จะเป็นประโยชน์ในการก่อให้เกิดของฉลากถ้าคุณต้องการที่จะหาฉลากประกอบด้วยข้อมูล (กวดวิชาหรือบทเรียนหรือ tutorialpoint หรือ tutorialphp) กวดวิชาที่จุดเริ่มต้นคุณสามารถใช้รหัสต่อไปนี้:

>db.posts.find({tags:{$regex:"tutorial"}})

การเพิ่มประสิทธิภาพปกติแบบสอบถามนิพจน์

  • ถ้าเขตข้อมูลดัชนีเอกสารของคุณตั้งแล้วใช้ของดัชนีเทียบกับการแสดงออกปกติที่ตรงกับการค้นหาข้อมูลทุกข้อสงสัยได้เร็วขึ้น

  • หากการแสดงออกปกติคือการแสดงออกคำนำหน้าข้อมูลที่ตรงกันทั้งหมดจะเป็นสตริงคำนำหน้าระบุที่จะเริ่มต้น ตัวอย่างเช่นหากการแสดงออกปกติเป็น ^ จุ๊แบบสอบถามจุ๊จะมองไปที่จุดเริ่มต้นของสตริง

มีการใช้การแสดงออกปกติมีสองจุดที่จะต้องทราบก็คือ:

การแสดงออกปกติใช้ตัวแปร ให้แน่ใจว่าจะใช้การรวมกันของสตริง EVAL จะแปลงหลังจากที่ไม่สามารถส่งโดยตรงไปยังการแสดงออกสตริง มิฉะนั้นมีข้อผิดพลาดไม่ได้ แต่ผลที่ได้คือว่างเปล่า! ตัวอย่างมีดังนี้

var name=eval("/" + 变量值key +"/i"); 

ต่อไปนี้เป็นแบบสอบถามเลือนมีคำหลักชื่อไม่สำคัญ case:

title:eval("/"+title+"/i")    // 等同于 title:{$regex:title,$Option:"$i"}