Mongodb_基礎實例

mongodbphp

<?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.cnblogs.com/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
?>


mongodb與mysql語法對照html

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"));

歸類mysql

    查詢colls全部數據正則表達式

        db.colls.find() //select * from colls sql

    經過指定條件查詢mongodb

        db.colls.find({‘last_name': ‘Smith'});//select * from colls where last_name='Smith' 數據庫

    指定多條件查詢數組

        db.colls.find( { x : 3, y : 「foo」 } );//select * from colls where x=3 and y='foo'url

    指定條件範圍查詢spa

        db.colls.find({j: {$ne: 3}, k: {$gt: 10} });//select * from colls where j!=3 and k>10

    查詢不包括某內容

        db.colls.find({}, {a:0});//查詢除a爲0外的全部數據


    支持<, <=, >, >=查詢,需用符號替代分別爲$lt,$lte,$gt,$gte

        db.colls.find({ 「field」 : { $gt: value } } ); 

        db.colls.find({ 「field」 : { $lt: value } } ); 

        db.colls.find({ 「field」 : { $gte: value } } );

        db.colls.find({ 「field」 : { $lte: value } } );


    也可對某一字段作範圍查詢

        db.colls.find({ 「field」 : { $gt: value1, $lt: value2 } } );


    不等於查詢用字符$ne

        db.colls.find( { x : { $ne : 3 } } );


    in查詢用字符$in

        db.colls.find( { 「field」 : { $in : array } } );

        db.colls.find({j:{$in: [2,4,6]}});


    not in查詢用字符$nin

        db.colls.find({j:{$nin: [2,4,6]}});


    取模查詢用字符$mod

        db.colls.find( { a : { $mod : [ 10 , 1 ] } } )// where a % 10 == 1


    $all查詢

        db.colls.find( { a: { $all: [ 2, 3 ] } } );//指定a知足數組中任意值時


    $size查詢

        db.colls.find( { a : { $size: 1 } } );//對對象的數量查詢,此查詢查詢a的子對象數目爲1的記錄


    $exists查詢

        db.colls.find( { a : { $exists : true } } ); // 存在a對象的數據

        db.colls.find( { a : { $exists : false } } ); // 不存在a對象的數據


    $type查詢$type值爲bsonhttp://bsonspec.org/數 據的類型值

        db.colls.find( { a : { $type : 2 } } ); // 匹配a爲string類型數據

        db.colls.find( { a : { $type : 16 } } ); // 匹配a爲int類型數據


    使用正則表達式匹配

        db.colls.find( { name : /acme.*corp/i } );//相似於SQL中like


    內嵌對象查詢

        db.colls.find( { 「author.name」 : 「joe」 } );


    1.3.3版本及更高版本包含$not查詢

        db.colls.find( { name : { $not : /acme.*corp/i } } );

        db.colls.find( { a : { $not : { $mod : [ 10 , 1 ] } } } );


    sort()排序

        db.colls.find().sort( { ts : -1 } );//1爲升序2爲降序


    limit()對限制查詢數據返回個數

        db.colls.find().limit(10)


    skip()跳過某些數據

        db.colls.find().skip(10)


    snapshot()快照保證沒有重複數據返回或對象丟失


    count()統計查詢對象個數

        db.students.find({‘address.state' : ‘CA'}).count();//效率較高

相關文章
相關標籤/搜索