ด้วยการถือกำเนิดของ PHP7 ไดรเวอร์ mongodb เก่าจึงไม่รองรับอีกต่อไป
ไดรเวอร์ใหม่ที่มีให้ใช้งานนั้นอยู่ในระดับต่ำเล็กน้อยเมื่อเทียบกับรุ่นก่อนหน้า ดังนั้นจึงอาจซับซ้อนเล็กน้อยในการทำงานด้วย
นี่คือสิ่งที่ห้องสมุดแห่งนี้ถูกสร้างขึ้นมาเพื่อ
- สำหรับแนวทางโดยละเอียดโปรดดูวิกิที่: https://github.com/ThomasSquall/PHP7MongoDriver/wiki
การใช้ผู้แต่งนั้นค่อนข้างง่าย เพียงรันคำสั่งต่อไปนี้:
$ composer require thomas-squall/php7-mongo-driver
ก่อนที่จะใช้ไลบรารีนี้ คุณควรตรวจสอบให้แน่ใจว่าได้ติดตั้ง PHP7.0 หรือไดรเวอร์หลักและ MongoDb จาก pecl แล้ว
สำหรับผู้ที่ใช้การกระจาย Linux (ตรวจสอบให้แน่ใจว่าได้ติดตั้ง pecl แล้ว) เพียงแค่เรียกใช้:
$ sudo pecl install mongodb
หลังจากนั้นคุณควรใส่สตริงต่อไปนี้
extension=mongodb.so
ภายใน php.ini ของคุณ
ในตอนแรกคุณต้องกำหนดสตริงการเชื่อมต่อ
รูปแบบของสตริงการเชื่อมต่อคือ:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
สำหรับข้อมูลเพิ่มเติมดูลิงค์: https://docs.mongodb.com/manual/reference/connection-string/
เมื่อกำหนดแล้วคุณจะต้องสร้างอินสแตนซ์ของอะแดปเตอร์ใหม่:
use MongoDriver Adapter ;
// Enstablish a connection.
$ adapter = new Adapter ();
$ adapter -> connect ( CONNECTION_STRING );
ณ จุดนี้คุณต้องการเลือกฐานข้อมูลที่คุณค้นหา:
$ adapter -> selectDB ( ' myDatabase ' );
หมายเหตุ: คุณสามารถเลือกฐานข้อมูลได้โดยตรงบน Constructor โดยส่งชื่อฐานข้อมูลเป็นพารามิเตอร์ตัวที่ 2
เมื่อเลือกฐานข้อมูลแล้ว เราก็สามารถค้นหาคอลเลกชันที่เราต้องการได้:
$ items = $ adapter -> find ( ' myCollection ' );
คุณยังสามารถกรองคำค้นหาของคุณได้:
use MongDriver Filter ;
$ filters =
[
new Filter ( ' myField1 ' , ' myValue1 ' , Filter:: IS_EQUALS ),
new Filter ( ' myField2 ' , [ ' myValue2 ' , ' myValue3 ' ], Filters:: IS_IN_ARRAY )
];
$ items = $ adapter -> find ( ' myCollection ' , $ filters );
หากคุณต้องการแทรกรายการ คุณเพียงแค่ต้องส่งอาร์เรย์หรือวัตถุไปยังฟังก์ชันแทรกที่ระบุคอลเลกชัน:
$ item = new Person ();
$ item -> name = ' Thomas ' ;
$ item -> surname = ' Cocchiara ' );
// or: $item = ['name' => 'Thomas', 'surname' => 'Cocchiara'];
$ adapter -> insert ( ' people ' , $ item );
หวังว่าพวกคุณจะพบว่าห้องสมุดนี้มีประโยชน์
กรุณาแบ่งปันและให้ข้อเสนอแนะ :)
โทมัส