با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، جلسه بیست و چهارم از آموزش های MongoDB را با آموزش PHP در MongoDB آغاز می کنیم.برای استفاده از MongoDB با PHP، شما باید از رجیستری PHP MongoDB استفاده کنید. درایور را از url دانلود درایور پی اچ پی دانلود کنید. اطمینان حاصل کنید که آخرین نسخه آن را دانلود کردید.
اکنون بایگانی را از حالت فشرده خارج کنید و php_mongo.dll را در دایرکتوری فرمت پی اچ پی خود قرار دهید (به طور پیش فرض “ext”) و خط زیر را به فایل php.ini اضافه کنید :
1 | extension = php_mongo.dll |
برای برقراری ارتباط، شما باید نام پایگاه داده را مشخص کنید، اگر پایگاه داده وجود نداشته باشد، MongoDB آن را به صورت خودکار ایجاد می کند.
در زیر قطعه کد برای اتصال به پایگاه داده آورده شده است :
1 2 3 4 5 6 7 8 9 10 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; ?> |
هنگامی که برنامه اجرا می شود، نتیجه زیر را تولید می کند :
1 2 | Connection to database successfully Database mydb selected |
قطعه کد برای ایجاد یک مجموعه به شرح زیر است :
1 2 3 4 5 6 7 8 9 10 11 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; $collection = $db->createCollection("mycol"); echo "Collection created succsessfully"; ?> |
بعد از اجرای برنامه بالا خروجی زیر ایجاد می شود :
1 2 3 | Connection to database successfully Database mydb selected Collection created succsessfully |
برای درج یک سند در MongoDB ،از متد ()insert استفاده می شود.
در زیر قطعه کد برای درج یک سند آمده است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; $collection = $db->mycol; echo "Collection selected succsessfully"; $document = array( "title" => "MongoDB", "description" => "database", "likes" => 100, "url" => "http://www.tutorialspoint.com/mongodb/", "by" => "tutorials point" ); $collection->insert($document); echo "Document inserted successfully"; ?> |
بعد از اجرای برنامه بالا خروجی زیر ایجاد می شود :
1 2 3 4 | Connection to database successfully Database mydb selected Collection selected succsessfully Document inserted successfully |
برای انتخاب همه اسناد از مجموعه، متد ()find استفاده می شود.
در زیر قطعه کد برای انتخاب تمام اسناد آورده شده است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; $collection = $db->mycol; echo "Collection selected succsessfully"; $cursor = $collection->find(); // iterate cursor to display title of documents foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?> |
وقتی برنامه را اجرا کنید خروجی زیر نمایش داده خواهد شد :
1 2 3 4 5 | Connection to database successfully Database mydb selected Collection selected succsessfully { "title": "MongoDB" } |
برای بروز رسانی یک سند، شما باید از متد ()update استفاده کنید.
در مثال زیر، عنوان سند وارد شده را به MongoDB Tutorial بروز رسانی خواهیم کرد. در زیر قطعه کد برای به روز رسانی یک سند آورده شده است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; $collection = $db->mycol; echo "Collection selected succsessfully"; // now update the document $collection->update(array("title"=>"MongoDB"), array('$set'=>array("title"=>"MongoDB Tutorial"))); echo "Document updated successfully"; // now display the updated document $cursor = $collection->find(); // iterate cursor to display title of documents echo "Updated document"; foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?> |
خروجی برنامه بالا به شکل زیر خواهد بود :
1 2 3 4 5 6 7 | Connection to database successfully Database mydb selected Collection selected succsessfully Document updated successfully Updated document { "title": "MongoDB Tutorial" } |
برای حذف یک سند، شما باید از متد ()remove استفاده کنید.
در مثال زیر ما اسنادی را که دارای عنوان MongoDB Tutorial هستند حذف می کنیم. در زیر قطعه کد برای حذف یک سند آورده شده است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php // connect to mongodb $m = new MongoClient(); echo "Connection to database successfully"; // select a database $db = $m->mydb; echo "Database mydb selected"; $collection = $db->mycol; echo "Collection selected succsessfully"; // now remove the document $collection->remove(array("title"=>"MongoDB Tutorial"),false); echo "Documents deleted successfully"; // now display the available documents $cursor = $collection->find(); // iterate cursor to display title of documents echo "Updated document"; foreach ($cursor as $document) { echo $document["title"] . "\n"; } ?> |
هنگامی که برنامه اجرا می شود، نتیجه زیر ایجاد می شود :
1 2 3 4 | Connection to database successfully Database mydb selected Collection selected succsessfully Documents deleted successfully |
در مثال بالا، پارامتر دوم از نوع بولین است و برای فیلد pureOne از متد ()remove استفاده می شود.
باقی مانده متدهای () findOne()، save()، limit()، skip()، sort و غیره که در MongoDB کار می کنند همانطور که در مثال های بالا توضیح داده شد عمل می کنند.
محمد
سلام
ممنون از آموزش خوبتون.
من متأسفانه برای اتصال به دیتابیس به مشکل خوردم. همون تست اول که دو خط زیر هستن بودن رو زدم، کار نکرد و ارور ۵۰۰ داد:
$m = new MongoClient();
$db = $m->mydb;
یوزرنیم و پسورد تعیین نکردم و از پورت پیشفرض هم استفاده میکنم.
از طریق node.js راحت وصل میشم و مشکلی نیست. ولی تو php به مشکل خوردم.
صادق
سلام. این خطا دلایل مختلفی می تونه داشته باشه. از جمله پیکربندی نادرست فایل htaccess. یا memory limit