初識Mongodb之[CURD]-PHP版
導讀:需要搭建好Mangodb的環境,沒有搭建好的請看下:初識Mongodb總結
邊看邊操作,這樣才能記得牢,實踐是檢驗真理的唯一標準.
光看不練假把式,光練不看傻把式,邊看邊練真把式.
知識改變命運,為了我們的未來,為了我們的夢想,一起動起來吧!
轉載請著原信息:
作者:吳佰清
地址:http://www.rzrgm.cn/wubaiqing/archive/2011/09/17/2179870.html
開發環境
操作系統 : Mac Os X
集成環境 : Mamp
編程語言 : PHP
Server : Mongodb
Extension : Mongo-1.2.4
管理工具 : Rock-PHP
行動
在了實踐之前,希望大家看一下上面的學習資源,了解一下基本操作.
數據連接初始賬號密碼
賬號:admin
密碼:admin
首先我們建立一個文件:mongodb.php,設置需要連接賬號密碼,連接數據庫
<?php
/**
* Mongodb Test
*
* Tools:
* Zend Studio 8.x
* Eclipse Plug :Toggle Varpper
*
* @author Wu Bai Qing<wbqyyicx@gmail.com>
* @version $Id: Mongodb.php 17 2011-09-17 06:04:15Z wbq $
*/
$mongo_server_name = 'admin';
$mongo_server_pwd = 'admin';
// 連接Mongo數據庫 數據庫地址:端口/賬號:密碼;
$mongo = new Mongo('mongodb://localhost:27017/admin:admin');
// 選擇一個數據庫和要操作的集(如果沒有數據庫默認創建)
$collection = $mongo->selectDB('rrs_result')->selectCollection('content');
?>
數據庫自動創建成功

添加一條數據!
<?php
$content = array(
'title'=>'葉子-吳佰清',
'author'=>'吳佰清',
'url'=>'http://www.rzrgm.cn/wubaiqing/archive/2011/09/17/2179870.html',
);
$collection->insert($content);
?>
存放的數據內容:

查詢所有數據:
<?php
$rows = $collection->find();
foreach ($rows as $key => $val)
{
var_dump($val);
}
?>
結果:

更改數據:
<?php
$where = array('title'=>'葉子-吳佰清');
$set = array('title'=>'葉子');
$collection->update($where,array(
'$set'=>$set,
));
?>
結果:

刪除數據:
<?php
$collection->remove(array(
'title'=>'葉子',
));
?>
結果:
No records is found.
完整代碼:
<?php
/**
* Mongodb Test
*
* Tools:
* Zend Studio 8.x
* Eclipse Pulg :Toggle Varpper
*
* @author Wu Bai Qing<wbqyyicx@gmail.com>
* @version $Id: Mongodb.php 17 2011-09-17 06:04:15Z wbq $
*/
$mongo_server_name = 'admin';
$mongo_server_pwd = 'admin';
// 連接Mongo數據庫 數據庫地址:端口/賬號:密碼;
$mongo = new Mongo('mongodb://localhost:27017/admin:admin');
// 選擇一個數據庫和要操作的集(如果沒有數據庫默認創建)
$collection = $mongo->selectDB('rrs_result')->selectCollection('content');
/*
// 添加
$content = array(
'title'=>'葉子-吳佰清',
'author'=>'吳佰清',
'url'=>'http://www.rzrgm.cn/wubaiqing/archive/2011/09/17/2179870.html',
);
$collection->insert($content);
*/
/*
// 查詢
$colle = $collection->find(array('title'=>'葉子-吳佰清'));
foreach ($colle as $key => $val)
{
var_dump($val);
}
*/
/*
// 修改
$where = array('title'=>'葉子-吳佰清');
$set = array('title'=>'葉子');
$collection->update($where,array(
'$set'=>$set,
));
*/
/*
//刪除
$collection->remove(array(
'title'=>'葉子',
));
*/
// End 2011-09-17 23:39
?>
下面是sql和Mongodb對應的一些語法:
| SQL Statement | Mongo Query Language Statement |
|---|---|
| CREATE TABLE USERS (a Number, b Number) | Implicit or use MongoDB::createCollection(). |
| INSERT INTO USERS VALUES(1,1) | $db->users->insert(array("a" => 1, "b" => 1)); |
| SELECT a,b FROM users | $db->users->find(array(), array("a" => 1, "b" => 1)); |
| SELECT * FROM users WHERE age=33 | $db->users->find(array("age" => 33)); |
| SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); |
| SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); |
| SELECT a,b FROM users WHERE age=33 ORDER BY name | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1)); |
| SELECT * FROM users WHERE age>33 | $db->users->find(array("age" => array('$gt' => 33))); |
| SELECT * FROM users WHERE age<33 | $db->users->find(array("age" => array('$lt' => 33))); |
| SELECT * FROM users WHERE name LIKE "%Joe%" | $db->users->find(array("name" => new MongoRegex("/Joe/"))); |
| SELECT * FROM users WHERE name LIKE "Joe%" | $db->users->find(array("name" => new MongoRegex("/^Joe/"))); |
| SELECT * FROM users WHERE age>33 AND age<=40 | $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40))); |
| SELECT * FROM users ORDER BY name DESC | $db->users->find()->sort(array("name" => -1)); |
| CREATE INDEX myindexname ON users(name) | $db->users->ensureIndex(array("name" => 1)); |
| CREATE INDEX myindexname ON users(name,ts DESC) | $db->users->ensureIndex(array("name" => 1, "ts" => -1)); |
| SELECT * FROM users WHERE a=1 and b='q' | $db->users->find(array("a" => 1, "b" => "q")); |
| SELECT * FROM users LIMIT 10 SKIP 20 | $db->users->find()->limit(10)->skip(20); |
| SELECT * FROM users WHERE a=1 or b=2 | $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2)))); |
| SELECT * FROM users LIMIT 1 | $db->users->find()->limit(1); |
| EXPLAIN SELECT * FROM users WHERE z=3 | $db->users->find(array("z" => 3))->explain() |
| SELECT DISTINCT last_name FROM users | $db->command(array("distinct" => "users", "key" => "last_name")); |
| SELECT COUNT(*y) FROM users | $db->users->count(); |
| SELECT COUNT(*y) FROM users where AGE > 30 | $db->users->find(array("age" => array('$gt' => 30)))->count(); |
| SELECT COUNT(AGE) from users | $db->users->find(array("age" => array('$exists' => true)))->count(); |
| UPDATE users SET a=1 WHERE b='q' | $db->users->update(array("b" => "q"), array('$set' => array("a" => 1))); |
| UPDATE users SET a=a+2 WHERE b='q' | $db->users->update(array("b" => "q"), array('$inc => array("a" => 2))); |
| DELETE FROM users WHERE z="abc" | $db->users->remove(array("z" => "abc")); |

浙公網安備 33010602011771號