2017-5-21 php查詢(xún)mongodb

php查詢(xún)mongodb

1、查詢(xún)時(shí)的排序

在關(guān)系型數(shù)據(jù)庫(kù)的查詢(xún)中,往往會(huì)用到排序载碌。例如時(shí)間倒序挟阻,點(diǎn)擊率升序啦等等。在Mongodb的查詢(xún)中嗦枢,也有排序功能的攀芯。
語(yǔ)法格式:
$db->find()->sort(array('age' => 1)); //按age字段升序排序。1為升序文虏,-1為降序侣诺。
例如:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");
    //查詢(xún)所有數(shù)據(jù),按age字段升序排序
    $cursor = $db->find()->sort(array('age' => 1));

    $array = array();
    while($cursor->hasNext()) {
        $array[] = $cursor->getNext();
    }
    echo "<pre>";
    print_r($array);
?>

2择葡、查詢(xún)時(shí)的skip和limit操作

同樣紧武,在關(guān)系型數(shù)據(jù)庫(kù)中,有l(wèi)imit可以限制查詢(xún)區(qū)間敏储。在Mongodb中也有類(lèi)似的功能阻星,那就是skip和limit操作。skip是跳過(guò)前多少條數(shù)據(jù)已添;limit是查詢(xún)多少條數(shù)據(jù)妥箕。例如接著上面的列子,我們從第二條數(shù)據(jù)開(kāi)始更舞,查詢(xún)一條數(shù)據(jù)畦幢。代碼如下:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");
    //按age字段升序查詢(xún),從第二條開(kāi)始缆蝉,查詢(xún)一條數(shù)據(jù)
    $cursor = $db->find()->sort(array('age' => 1))->skip(1)->limit(1);

    $array = array();
    while($cursor->hasNext()) {
         $array[] = $cursor->getNext();
    }
    echo "<pre>";
    print_r($array);
?>

3宇葱、查詢(xún)時(shí)的字段篩選

在查詢(xún)時(shí)瘦真,我們往往會(huì)遇到,只需要查詢(xún)某一個(gè)或者多個(gè)特定的字段黍瞧,這就涉及到字段篩選诸尽。語(yǔ)法格式如下:
$db->find(array(), array('age' => true)); //第一個(gè)參數(shù)是查詢(xún)條件,第二個(gè)參數(shù)是字段篩選印颤。值為true您机,表示查詢(xún)?cè)撟侄危恢禐閒alse年局,表示不查詢(xún)?cè)撟侄巍?br> 例如上面的列子际看,我們只想查詢(xún)年齡這個(gè)字段,代碼如下:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");
  
    //查詢(xún)age和id兩個(gè)字段矢否。
    $cursor = $db->find(array(), array('age' => true, 'id' => true));

    $array = array();
    while($cursor->hasNext()) {
        $array[] = $cursor->getNext();
    }
    echo "<pre>";
?>

4仲闽、查詢(xún)時(shí)的Like操作

在查詢(xún)時(shí),我們也會(huì)遇到需要模糊查詢(xún)的時(shí)候兴喂。在關(guān)系型數(shù)據(jù)庫(kù)中使用like查詢(xún)即可蔼囊,在mongodb數(shù)據(jù)庫(kù)中,也有模糊查詢(xún)的操作衣迷。語(yǔ)法格式如下:
$db->find(array('name' => new MongoRegex("/^j/"))); //mongodb中的模糊查詢(xún)是通過(guò)正則查詢(xún)的
例如上面的例子畏鼓,我們查詢(xún)名字以j開(kāi)頭的數(shù)據(jù),代碼如下:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");
    //查詢(xún)name字段以j開(kāi)頭的數(shù)據(jù)
    $cursor = $db->find(array('name' => new MongoRegex("/^j/")));

    $array = array();
    while($cursor->hasNext()) {
        $array[] = $cursor->getNext();
    }
    echo "<pre>";
    print_r($array);
?>

5壶谒、查詢(xún)時(shí)的count操作

在查詢(xún)時(shí)云矫,我們也許會(huì)碰到需要查詢(xún)滿(mǎn)足條件的數(shù)據(jù)的總和。這時(shí)就用到了count操作汗菜。語(yǔ)法格式如下:
$db->count();
例如上面的例子让禀,我們查詢(xún)數(shù)據(jù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)總和。代碼如下:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");

    echo $db->count();
?>

運(yùn)行結(jié)果是:3

6陨界、查詢(xún)時(shí)的or操作

在查詢(xún)時(shí)巡揍,我們也許也會(huì)用到or操作。語(yǔ)法格式如下:
$db->find(array('$or' => array(array('id' => 1), array('name' => 'java'))));
例如上面的例子菌瘪,我們查詢(xún)id是1腮敌,或者name是java的數(shù)據(jù)。代碼如下:

<?php
    //連接數(shù)據(jù)庫(kù)
    $connnect = new Mongo("mongodb://127.0.0.1:27017");
    //選擇數(shù)據(jù)庫(kù)
    $db = $connnect->selectDB('mydb')->selectCollection("user");

    $cursor = $db->find(array('$or' => array(array('id' => 1), array('name' => 'java'))));

    $array = array();
    while($cursor->hasNext()) {
        $array[] = $cursor->getNext();
    }
    echo "<pre>";
?>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俏扩,一起剝皮案震驚了整個(gè)濱河市糜工,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌录淡,老刑警劉巖捌木,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嫉戚,居然都是意外死亡刨裆,警方通過(guò)查閱死者的電腦和手機(jī)澈圈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)崔拥,“玉大人极舔,你說(shuō)我怎么就攤上這事×赐撸” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盯桦,是天一觀的道長(zhǎng)慈俯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)拥峦,這世上最難降的妖魔是什么贴膘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮略号,結(jié)果婚禮上刑峡,老公的妹妹穿的比我還像新娘。我一直安慰自己玄柠,他們只是感情好突梦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著羽利,像睡著了一般宫患。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上这弧,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天娃闲,我揣著相機(jī)與錄音,去河邊找鬼匾浪。 笑死皇帮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛋辈。 我是一名探鬼主播属拾,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼梯浪!你這毒婦竟也來(lái)了捌年?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挂洛,失蹤者是張志新(化名)和其女友劉穎礼预,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體虏劲,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡托酸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年褒颈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片励堡。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谷丸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出应结,到底是詐尸還是另有隱情刨疼,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布鹅龄,位于F島的核電站揩慕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扮休。R本人自食惡果不足惜迎卤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玷坠。 院中可真熱鬧蜗搔,春花似錦、人聲如沸八堡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秕重。三九已至不同,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溶耘,已是汗流浹背二拐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凳兵,地道東北人百新。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像庐扫,于是被迫代替她去往敵國(guó)和親饭望。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 目錄 查詢(xún)操作 集合查詢(xún)方法 find() 查詢(xún)內(nèi)嵌文檔 查詢(xún)操作符(內(nèi)含 數(shù)組查詢(xún)) "$gt" 形庭、"$gte"...
    彩虹之夢(mèng)閱讀 1,022評(píng)論 0 1
  • NoSql數(shù)據(jù)庫(kù)優(yōu)缺點(diǎn) 在優(yōu)勢(shì)方面主要體現(xiàn)在下面幾點(diǎn): 簡(jiǎn)單的擴(kuò)展 快速的讀寫(xiě) 低廉的成本 靈活的數(shù)據(jù)模型 在不足...
    dreamer_lk閱讀 2,724評(píng)論 0 6
  • [TOC]未完更新中... 1. MongoDB安裝及配置 官網(wǎng)下載地址 安裝msc文件,現(xiàn)在3.4的版本,有了m...
    BigJeffWang閱讀 2,248評(píng)論 0 49
  • Mongodb 配置選項(xiàng) 通常在mongod.conf中 配置文件 設(shè)置了配置文件后啟動(dòng)時(shí)以自定義的配置文件啟動(dòng):...
    AkaTBS閱讀 1,081評(píng)論 0 6
  • 從人人都是產(chǎn)品經(jīng)理網(wǎng)站轉(zhuǎn)載 年年底的時(shí)候铅辞,我(Firstround Review 主編)在 Facebook 公司...
    袁少成閱讀 406評(píng)論 0 3