當前位置:首頁 » 編程語言 » mongodbphp擴展

mongodbphp擴展

發布時間: 2022-09-24 14:07:36

『壹』 mongodb已經安裝成功,php擴展安裝成功 但是用php 連接失敗 錯誤提示如下

$class='MongoClient';

if(!class_exists($class)){

$class='Mongo';

}

$conn=new$class($hosts,$args);

『貳』 mongodb當機後,重啟mongodb,php就連接不上mongodb了,再重啟Apache後,php就可以連接上mongodb,

你的mongo連接方式是什麼?php擴展?還是類文件?如果是php擴展,那就是因為你的apache引入php採用的模塊方式,只有重啟apache才會出發Mshutdown行為。也就是重新載入php擴展,或許你的php擴展里的mongo鏈接是靜態的。

『叄』 如何使用brew安裝php的mongodb擴展

MongoDB 是一個基於分布式文件存儲資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。
Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
MongoDB的數據存儲上,感覺有點想關系型資料庫中的key=>value的數據格式。
和memcache或者redis差不多,mongodb也是分服務端和客戶端的(相對)。用brew 來安裝的話是非常方便的。

遇到類似的問題,你可以去後盾人平台看看的哦,裡面的東西不錯應該能幫你解決一些不明白的問題(❁´◡`❁)*

『肆』 為什麼我用php查詢mongodb資料庫中的某個集合中的文檔的條數,得到的結果和實際情況不一致

我也遇到過:

官方文檔解釋了這種現象的原因以及解決方法:
不準確的原因:

  • 操作的是分片的集合(前提);

  • shard分片正在做塊遷移,導致有重復數據出現

  • 存在孤立文檔(因為不正常關機、塊遷移失敗等原因導致)

    解決方法

  • 使用聚合aggregate的方式查詢count數量,shell命令如下:


    db.collection.aggregate(
    [
    { $group: { _id: null, count: { $sum: 1 } } }
    ])

    也可以直接將原數據導出,將表刪除後重新導入就可以了(我是這么處理的)

『伍』 php7 mongodb 擴展 真的很差嗎

MongoDB\Driver\Manager::executeBulkWrite
這玩意還配置了一個巨大的類庫來配合調用:就是這個:https://github.com/mongodb/mongo-php-library ,純粹是脫褲子放P,多此一舉,本來原生擴展就已經巨長、巨難用,還配一個根本沒有簡化任何代碼的庫有什麼意義?甚至於調用這個類庫比原生的名字更長、更啰嗦,而且多了一層封裝就多一次bug機會。
這個庫文件總共63個,看看,如果你隨便寫個腳本訪問一下mongodb,還得包含63個文件,我TM整個項目都沒有63個文件好不好?這些個寫慣了java的沒事就老老實實寫java,都跑來寫php,php是要解析執行的,又不像jvm那麼編譯優化執行,搞那麼多文件,不影響執行速度嗎?真是狗屎,所以完全不推薦用這個狗屎庫。
但是這個擴展最奇怪的就是文檔超級簡陋,根本不能獲得任何有價值的信息,所以只能靠摸索來了。
下面是我用到的由MongoClient遷移到MongoDB\Driver的差異點。
MongoClient插入或更新是同樣的代碼:
(new MongoClient())->{$db}->{$collection}->save($arr);
// 這個$arr數組可以直接含有 "_id" 索引來指定 mongodb文檔的_id值,就這么簡單粗暴,這才是php啊!
MongoDB\Driver,插入和更新需要區分:
$mongo = new MongoDB\Driver\Manager();
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$data = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query([]), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED))->toArray();
if (empty($data[0])) { // 確定不存在,插入
$bulk->insert($arr);
} else { // 否者更新
$bulk->update([], array('$set' => $arr)); // $arr同樣是剛才的數組
}
// 還沒完,還要執行下一步:db.collection要替換成實際的資料庫、集合名
$result = $mongo->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000));
// 返回插入或更新是否成功:
$ok = $result->getInsertedCount() || $result->getModifiedCount() ? 1 : 0;
// 真是夠了!
查詢一條記錄:
MongoClient:
(new MongoClient())->{$db}->{$collection}->findOne(['_id' => $id]);
MongoDB\Driver:
$mongo = new MongoDB\Driver\Manager();
$result = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query(['_id'=>$id], []), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED));
// 返回的$result是一個對象,需要手動轉換成數組。
查詢數量時候,需要注意:
$mongo = new MongoDB\Driver\Manager();
$cursor = $mongo-executeCommand($db, new MongoDB\Driver\Command($arr), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));
// 這里$cursor是一個游標。需要注意$arr里的欄位:
$arr = ['count'=>$collection, 'query'=>$query]; // 這里count必須排在前面,位置反了直接報異常。
查詢結果集:
$mongo = new MongoDB\Driver\Manager();
$cursor = $mongo->executeQuery('db.collection', new MongoDB\Driver\Query($arr, $opts), new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED));
//注意,這里的 $arr和 $opts;
$arr = ['_id'=> ['$in'=> $ids] ]; // 根據id數組獲取集合
$opts = ['limit'=> $limit, 'skip'=> $skip ]; // 不推薦
// 這里在傳遞$limit和$skip的時候,最好先轉成整數,不然不生效:
$opts = ['limit'=> (int) $limit, 'skip'=> (int) $skip ]; // 推薦寫法。
// 寫到這里,讓人懷疑是不是在用php了,怎麼還需要這樣的類型轉換。字元串整數都不行!
基本就這樣,推薦自己封裝一個簡單的MongoDB\Driver,而不是使用那個巨大無比的庫、也不推薦直接用原生

『陸』 php 7.1 怎麼安裝mongodb擴展

我們再網頁上填寫的表單信息都可以通過這兩個方法將數據傳遞到伺服器上,當我們使用GET方法是,所有的信息都會出現在URL地址中,並且使用GET方法最多隻能傳遞1024個字元,所以如果在傳輸量小或者安全性不那麼重要的情況下可以使用GET方法。樓主你看看我的方法可以嗎,建議樓主去後盾人看看哦,還送兩千元的後盾人會員卡

『柒』 你怎麼查詢這個mongo

很多Linux的朋友喜歡使用mongodb資料庫,這款好用方便的資料庫。不過一些朋友想要安裝mongodb擴展時,卻不知道怎麼安裝了,因此,現在我就教大家安裝mongodb擴展的方法,有需要的朋友快來看看吧。 安裝步驟: 環境 nginx/1/get/mongo-1.4.5.tgz 2. 編譯安裝 tar xvf mongo-1.4.5.tgz -C /usr/src cd /usr/src/mongo-1.4.5/ phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 3. 配置php.ini,增加下面兩行 [mongo] extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/mongo.so 4. 重新載入php-fpm, nginx pkill php-fpm /usr/local/php/sbin/php-fpm /usr/local/nginx/sbin/nginx -s reload 5. 驗證是否安裝成功 php -m grep mongo # 或者查看phpinfo頁面 這就是Linux系統安裝mongodb擴展的步驟了,想要安裝mongodb擴展的用戶,就按照上面的步驟進行安裝吧。

『捌』 php怎樣測試是否安裝成功mongdb擴展

1、在windows環境下,我們的軟體安裝在C盤,當然用戶也可以安裝在其他磁碟,和Java一樣。小編以默認地址為例,首先是如何運行我們的資料庫,打開cmd,輸入cd C:\Program Files\MongoDB\Server\3.2\bin,回車;在輸入C:\Program Files\MongoDB\Server\3.2\bin\mongod即可運行我們的資料庫服務。
2、如果用戶不想每次開機都運行,那麼可以修改環境變數,這樣一開機即可開始服務。
3、然後找到path變數,修改變數值,添加C:\Program Files\MongoDB\Server\3.2\bin,記住這里有許多變數值需要使用「;」隔開。

『玖』 php7.3.4連接MongoDB2.2.2用哪個版本的擴展呢

  1. 首先進入pecl(PHP Extension Community Library)網站;

  2. 搜索mongodb擴展;

  3. 點擊版本,查看支持的php版本

『拾』 php 遠程連接Mongodb問題

<?php //這里採用默認連接本機的27017埠,當然你也可以連接遠程主機如192.168.0.4:27017,如果埠是27017,埠可以省略 $m = new Mongo(); // 選擇comedy資料庫,如果以前沒該資料庫會自動創建,也可以用$m->selectDB("comedy"); $db = $m->comedy; //選擇comedy裡面的collection集合,相當於RDBMS裡面的表,也-可以使用 $collection = $db->collection; $db->selectCollection("collection"); //添加一個元素 $obj = array( "title" => "Calvin and Hobbes-".date('i:s'), "author" => "Bill Watterson" ); //將$obj 添加到$collection 集合中 $collection->insert($obj); //添加另一個元素 $obj = array( "title" => "XKCD-".date('i:s'), "online" => true ); $collection->insert($obj); //查詢所有的記錄 $cursor = $collection->find(); //遍歷所有集合中的文檔 foreach ($cursor as $obj) { echo $obj["title"] . "<br />\n"; } //刪除所有數據 //$collection->remove(); //刪除 name 為hm //$collection->remove(array('name'=>'hm')); //斷開MongoDB連接 $m->close(); ?>
你可以去後盾人平台看看,裡面的東西不錯

熱點內容
反編譯軟體id 發布:2024-04-20 10:29:49 瀏覽:44
視頻太長怎麼壓縮發微信 發布:2024-04-20 10:00:14 瀏覽:384
顯卡怎麼保存配置 發布:2024-04-20 09:28:52 瀏覽:596
校園交易網站源碼 發布:2024-04-20 09:18:54 瀏覽:701
江蘇北斗授時伺服器ip雲空間 發布:2024-04-20 08:53:50 瀏覽:931
dedecms批量上傳圖片 發布:2024-04-20 08:42:11 瀏覽:966
酷q如何編譯 發布:2024-04-20 08:41:27 瀏覽:79
安卓手機數字人民幣怎麼下載 發布:2024-04-20 08:38:21 瀏覽:114
access如何配置資料庫 發布:2024-04-20 08:37:35 瀏覽:504
手寫輸入演算法 發布:2024-04-20 08:29:31 瀏覽:258