nosql
Home  Contents KMArticlesMembersSponsorsAbout us

ปรับปรุง : 2558-10-04 (ปรับป้าย)
nosql
1. เริ่มต้นก็ต้องหาอ่านเอกสารเรื่องการติดตั้ง MongoDB
พบว่าที่  http://php-for-ecommerce.blogspot.com/2012/07/mongodb-window-7.html
อธิบายการติดตั้งไว้ละเอียดดีมาก

2. download : MongoDB จาก https://www.mongodb.org/downloads
เลือก Version: Windows 32-bit แบบ zip file แล้ว unzip

3. สร้าง folder ชื่อ C:\mongodb\data สำหรับเก็บข้อมูล แล้วสั่งเปิดบริการ Mongo DB
ด้วย DOS>C:\mongodb\bin\mongod.exe --dbpath C:\mongodb\data
2015-... I CONTROL
2015-... W CONTROL  32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
2015-... I CONTROL 
2015-... I CONTROL  [initandlisten] MongoDB starting : pid=5112 port=27017 dbpath=C:\mongodb\data 32-bit host=desktop2
2015-... I CONTROL  [initandlisten]
2015-... I CONTROL  [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
2015-... I CONTROL  [initandlisten] **       32 bit builds are limited to less than 2GB of data (or less with --journal).
2015-... I CONTROL  [initandlisten] **       Note that journaling defaults to off for 32 bit and is currently off.
2015-... I CONTROL  [initandlisten] **       See http://dochub.mongodb.org/core/32bit
2015-... I CONTROL  [initandlisten]
2015-... I CONTROL  [initandlisten] targetMinOS: Windows XP SP3
2015-... I CONTROL  [initandlisten] db version v3.0.6
2015-... I CONTROL  [initandlisten] git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2
2015-... I CONTROL  [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, ..................
2015-... I CONTROL  [initandlisten] allocator: tcmalloc
2015-... I CONTROL  [initandlisten] options: { storage: { dbPath: "C:\mongodb\data" } }
2015-... I NETWORK  [initandlisten] waiting for connections on port 27017

4. download : Mongo PHP Extension on Windows สำหรับ PHP
ที่ http://pecl.php.net/package/mongo/1.5.1/windows เลือก 5.6 Thread Safe (TS) x86 
ที่ http://windows.php.net/downloads/pecl/releases/mongo/1.5.1/php_mongo-1.5.1-5.6-ts-vc11-x86.zip

5. คลาย .zip ลงไปในห้อง ext ของ php
แล้วเพิ่ม php_mongo.dll ใน php.ini เป็น extension=php_mongo.dll
แล้วสั่ง restart webserver ในกรณีนี้ใช้ XAMPP

6. เขียน php เรียกดู phpinfo() ว่า MongoDB พร้อมให้บริการหรือไม่


7. ทดสอบใช้ DOS>mongo ทดสอบการทำงานของ MongoDB
MongoDB shell version: 1.8.1
connecting to: test
> show dbs
local  0.078GB
มีเป้าหมายสร้าง Database ชื่อ thaiall มี collection ชื่อ myteam และ insert ค่าให้กับ myid เป็น 101
หรือมีเป้าหมายสร้าง Database ชื่อ mkyongdb มี collection ชื่อ users และ insert ค่าให้กับ username เป็น mkyong
ดูตัวอย่างที่ http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/
> show dbs // แสดงรายชื่อฐานข้อมูล
> use thaiall // เปิดใช้ฐานข้อมูล แม้ไม่มีอยู่ก็เปิดใช้ชั่วคราว เดี๋ยวค่อยบันทึก
> db.myteam.save( {myid:"101"} ) // บันทึกข้อมูล 101 ใน myid
> db.myteam.find() // แสดงข้อมูลใน collection ทั้งหมด ของ thaiall 
{ "_id" : ObjectId("56110d86c6025b6b6f8f4687"), "myid" : "101" }
>show dbs
thaiall  0.078GB
local  0.078GB

8. เขียน test_mongo.php เป็นเรื่องเป็นราว ทำงานกับ MongoDB 
มีตัวอย่างที่ http://php.net/manual/en/mongo.tutorial.php
<?php
// connect
$m = new MongoClient();
// select a database
$db = $m->comedy;
// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;
// add a record
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);
// add another record, with a different "shape"
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);
// find everything in the collection
$cursor = $collection->find();
// iterate through the results
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}
?>

9. ดูผลด้วย DOS>mongo
> show dbs
> use comedy // เรียกใช้ database
> db.cartoons.find() // show all records
{ "_id" : ObjectId("5611144b116b377011000029"), "title" : "Calvin and Hobbes", "author" : "Bill Watterson" }
{ "_id" : ObjectId("5611144b116b37701100002a"), "title" : "XKCD", "online" : true }
{ "_id" : ObjectId("56111451116b37701100002b"), "title" : "Calvin and Hobbes", "author" : "Bill Watterson" }
{ "_id" : ObjectId("56111451116b37701100002c"), "title" : "XKCD", "online" : true }
{ "_id" : ObjectId("56111452116b37701100002d"), "title" : "Calvin and Hobbes", "author" : "Bill Watterson" }
{ "_id" : ObjectId("56111452116b37701100002e"), "title" : "XKCD", "online" : true }

10. ถ้าเรียก test_mongo.php ซ้ำ จำนวนข้อมูลก็จะเพิ่มขึ้นเท่านั้น แต่ _id ของข้อมูลจะเปลี่ยนไป
"Imagination is more important than knowledge" - Albert Einstein
Home
Thaiabc.com
Thainame.net
Lampang.net
Nation University
PHP
MySQL
Visual basic.NET
TabletPC
Linux
Online quiz
Download
Search engine
Web ranking
Add website
Blog : IT & Media
Blog : ACLA
Blog : Education
Facebook.com
Twitter.com
About us
My dream
Site map
Sponsor
http://goo.gl/72BPC