MongoDB چیست؟
MongoDB NoSQL database management systems یا سیستم مدیریت پایگاه داده بدون sql به نام Mongodb
MongoDB یک پایگاه داده اپن سورس و رایگان است که با پایگاههای داده دیگر چندین تفاوت اساسی دارد.
داده ها در فایل های ساختاریافته جی سون شبیه به فایل ها با شمای دینامیک و عملکرد کاربری بهبود یافته ذخیره میشود ( چه ترجمه ای !)
یه ترجمه دیگه : { مونگودیبی یک پایگاه داده اپن سورس و رایگان مثل MySQL است با این تفاوت که عمر زیادی ندارد (از سال ۲۰۰۹ انتشار آن آغاز شده) و مهمتر از همه اینها؛ بسیاری از محدودیتهای سایر پایگاههای داده را ندارد!!!
این پایگاه داده سندگرا است بنابراین برخلاف پایگاه دادههای رابطهای، اسناد شبیه به جیسون را مدیریت میکند. این اجازه میدهد که مدل دادههای برنامه بیشتر به شکل طبیعیشان نزدیک باشد به این خاطر که دادهها میتوانند در سلسله مراتبی پیچیده و تودرتو قرار بگیرند اما قابلیت اجرای درخواست و شمارهبندیشان را از دست ندهند.}
در این مطلب میخوام یک فرم ساده ورود با استفاده از php و mongodb ایجاد کنم تا بتونید عملکرد mongodb رو بهتر درک کنید :
نصب MongoDB
برای نصب مونگو دی بی بر روی سیستم عامل ویندوز میتونید از این راهنما که در سایت اصلی اون قرار داده شده استفاده کنید:
/http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows
ابتدا باید به صفحه دانلود مونگو دی بی مراجعه کنید : MongoDB downloads page. و نسخه نهایی اون رو با توجه به سیستم عامل مورد استفاده دانلود کنید
همیشه سعی کنید نسخه نهایی متناسب با سیستم عامل خودتون رو دانلود کنید
فایل دانلود شده را بر روی درایو C انزیپ یا اکسترکت کنید
داخل درایو C و پوشه ی mongodb که فایل ها را داخل آن اکسترکت کرده اید شوید لزومی برای نصب بر روی درایو C نمی باشد
فولدر data و داخل آن فولدر db را ایجاد کنید بقیه مراحل رو میتونید از صفحه راهنما بخونید در نهایت با دستور C:\mongodb\bin\mongod.exe
مونگو دی بی استارت خواهد شد
همچنین برای php افزونه ای داره که میتونید از اینجا بخونید : https://github.com/mongodb/mongo-php-driver/downloads
فایل php_mongo.dll رو بر روی دایرکتوری افزونه های php کپی کنید
و یا برای لینوکس و مک هم میتونید از این آموزش ها استفاده کنید :
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
بریم سراغ آموزش اصلی :
ارتباط در MongoDB
<?php
$mongo = new Mongo(“mongodb://{$username}:{$password}@{$host}”);
$db = $mongo->selectDB(“test”);
?>
به صورت پیش فرض مونگو دی بی یک دیتابیس نمونه به نام test دارد
ایجاد دیتابیس جدید :
$db = $mongo->Database_Name;
کد php برای نمایش دیتابیس های mongodb
//گرفتن لیست دیتابیس ها
$mongo->admin->command(array(“listDatabases” => 1));
//گرفتن لیستی از جدول ها در دیتابیس test
$db->listCollections();
Mongo Shell/Terminal/Command Prompt
db.listDatabases
db.test.showCollections
ایجاد مجموعه (کالکشن ) یا جدول
collection یا تیبل یا جدول با اجرای کد زیر ایجاد خواهد شد:
$db->createCollection(“people”,false);
این false که میبینید نشانگر نا محدود بودن سایز می باشد
Mongo Shell
db.createCollection(“people”,false);
نحوه افزودن یک رکورد به جدول
با استفاده از این دستور میتونید یک سری داده به جدول دیتابیس mongodb بی افزائید:
<?php
$people = $db->people;
$insert = array(“user” => “[email protected]”, “password” => md5(“demo_password”));
$db->insert($insert);
?>
Mongo Shell:
db.people.insert({user:”user_name”,password:”password”});
به روز رسانی یا آپدیت داده ها یا رکورد ها
<?php
$update = array(“$set” => array(“user” => “[email protected]”));
$where = array(“password” => “password”);
$people->update($where,$update);
?>
این دستور داده های دستور insert رو به روز خواهد کرد منظور از به روز رسانی همون تغییر یا ویرایش هست
خوب دستابیس ما آماده هست
حالا نیاز به یک فرم html داریم تا کاربر اطلاعاتش رو وارد کنه
به این صورت :
<form action="index.php" method="POST">
Email:
<input type="text" id="usr_email" name="usr_email" />
Password:
<input type="password" id="usr_password" name="usr_password" />
<input name="submitForm" id="submitForm" type="submit" value="Login" />
</form>
حالا یک صفحه کد هم برای پردازش فرم لاگین بعد از submit نیاز خواهیم داشت :
<?php
$succss = "";
if(isset($_POST) and $_POST['submitForm'] == "Login" )
{
$usr_email = mysql_escape_string($_POST['usr_email']);
$usr_password = mysql_escape_string($_POST['usr_password']);
$error = array();
// Email Validation
if(empty($usr_email) or !filter_var($usr_email,FILTER_SANITIZE_EMAIL))
{
$error[] = "Empty or invalid email address";
}
if(empty($usr_password)){
$error[] = "Enter your password";
}
if(count($error) == 0){
$con = new Mongo();
if($con){
// Select Database
$db = $con->test;
// Select Collection
$people = $db->people;
$qry = array("user" => $usr_email,"password" => md5($usr_password));
$result = $people->findOne($qry);
if($result){
$success = "You are successully loggedIn";
// Rest of code up to you....
}
} else {
die("Mongo DB not installed");
}
}
}
?>
کد ها ساده است و کاملا مشخص