導航:首頁 > 編程語言 > php連接mongodb資料庫連接

php連接mongodb資料庫連接

發布時間:2024-03-27 04:21:29

1. php操作MongoDB GridFS 下載txt文件

<?php
//初始化gridfs
$conn = new Mongo(); //連接MongoDB
$db = $conn->photos; //選擇資料庫
$grid = $db->getGridFS(); //取得gridfs對象

//gridfs有三種方式存儲文件
//第一種直接存儲文件
$id = $grid->storeFile("./logo.png");

//第二種存儲文件二進制流
$data = get_file_contents("./logo.png");
$id = $grid->storeBytes($data,array("parame"=>』附加參數將隨圖片一起存入』));

//第三種保存直接表單提交的文件$_FILES
$id = $grid->storeUpload('upfile');
//相當於
$id = $grid->storeFile($_FILES[『upfile』][『tmp_name』]);

//--------------以上是保存圖片--下面開始讀取圖片----------------

//保存成功後返回$id = md5字元串
$logo = $grid->findOne(array('_id'=>$id)); //以_id為索引取得文件
header('Content-type: image/png'); //輸出圖片頭
echo $logo ->getBytes(); //輸出數據流
?>

2. php鏈接mongodb

說一下我看到的代碼,你display()裡面可以寫上自己要展現的模板地址。

報錯報的是沒有寫許可權。說明你沒有給這個文件寫許可權,所以無法創建緩存目錄和寫入緩存文件。你上傳到了伺服器上,直接用伺服器Ip打開。

3. PHP連接mongodb資料庫,登陸後想顯示登錄人的用戶名,為什麼現在顯示1

方法如下:
創建資料庫
use tt
這樣就創建了一個資料庫,如果什麼都不操作離開的話,這個庫就會被系統刪除.所以還要執行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});
隨便整了2個表,這個無所謂的,反正要導入表的話就刪除掉這2個就可以了,目前只是想讓資料庫保持住.
然後使用命令查看是否有保存tt這個資料庫:
show dbs
3.配置用戶
use tt
db.addUser('mongodb','123456');
mongodb是用戶名,123456是密碼.
好了,這樣一個資料庫和對這個資料庫配置用戶就完成了.
mongodb常用命令:
1、Help查看命令提示
help
db.help();
db.yourColl.help();
db.youColl.find().help();
rs.help();
2、切換/創建資料庫
use yourDB; 當創建一個集合(table)的時候會自動創建當前資料庫
3、查詢所有資料庫
show dbs;
4、刪除當前使用資料庫
db.dropDatabase();
5、從指定主機上克隆資料庫
db.cloneDatabase(「127.0.0.1」); 將指定機器上的資料庫的數據克隆到當前資料庫
6、從指定的機器上復制指定資料庫數據到某個資料庫
db.Database("mydb", "temp", "127.0.0.1");將本機的mydb的數據復制到temp資料庫中
7、修復當前資料庫
db.repairDatabase();
8、查看當前使用的資料庫
db.getName();
db; db和getName方法是一樣的效果,都可以查詢當前使用的資料庫
9、顯示當前db狀態
db.stats();
10、當前db版本
db.version();
11、查看當前db的鏈接機器地址
db.getMongo();
Collection聚集集合
1、創建一個聚集集合(table)
db.createCollection(「collName」, {size: 20, capped: 5, max: 100});
2、得到指定名稱的聚集集合(table)
db.getCollection("account");
3、得到當前db的所有聚集集合
db.getCollectionNames();
4、顯示當前db所有聚集索引的狀態
db.printCollectionStats();
用戶相關
1、添加一個用戶
db.addUser("name");
db.addUser("userName", "pwd123", true); 添加用戶、設置密碼、是否只讀
2、資料庫認證、安全模式
db.auth("userName", "123123");
3、顯示當前所有用戶
show users;
4、刪除用戶
db.removeUser("userName");
其他
1、查詢之前的錯誤信息
db.getPrevError();
2、清除錯誤記錄
db.resetError();

4. thinkphp6 版本 mongodb 連表查詢 案例

# https://www.cnblogs.com/cangqinglang/p/14858131.html
public function index(){

// 方法1 您可以使用 $toObjectId聚合實現此目的,該聚合僅將字元串ID轉換為mongoose objectId
// https://blog.csdn.net/az9996/article/details/110141289
// 多表查詢 https://blog.csdn.net/eric_to/article/details/90093806

$pipeline = [
['$addFields'=>['company_id'=>['$toObjectId'=>'$company_id']]],
['$match'=>['$expr'=>['$eq'=>["\$company_id", "$\$company_Id"]]]],
];
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx限公司"]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
"let"=>["company_Id"=>"\$_id" ],
"pipeline"=>$pipeline,
'as'=>'company_pay'
],
]
];
// php 執行 產生了 2571 條數據 但是 用 db.runCommand() 執行 列印的 sql 語句 只有 101 條記錄
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// 以下 mongodb sql 在 資料庫 查詢 通過 有 2571 條記錄
// db.getCollection("oa_company").aggregate([
// {
// "$lookup": {
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ])
// 以下 mongodb sql 在 資料庫 查詢 通過 只有 101 條記錄
// db.runCommand({
// "aggregate":"oa_company",
// "pipeline":[
// {
// "$lookup":{
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }

// }
// ],
// "explain":false
// })

// 方法2 或者使用$toString聚合 可以通過 2571

// db.getCollection('oa_company').aggregate([
// { "$addFields": { "companyidStr": { "$toString": "$_id" }}},
// { "$lookup": {
// "from": "oa_company_member_pay",
// "localField": "companyidStr",
// "foreignField": "company_id",
// "as": "pay"
// }}
// ])
/*
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx有限公司"]],
['$addFields'=>['companyidStr'=>['$toString'=>'$_id']]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
'localField'=>'companyidStr',
'foreignField'=>'company_id',
'as'=>'company_pay'
],
]
];
// php 執行 產生了 2571 條數據 但是 用 db.runCommand() 執行 列印的 sql 語句 只有 101 條記錄
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// db.cmd({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

// 下面 執行 不可以 只有 101 條數據
db.runCommand({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

*/

}

5. PHP支持Mongodb副本集聯接嗎

因為只有對一個庫的許可權,所以指定了dbname
連接如下:
$con = new Mongo("mongodb://user:[email protected]:27010,192.168.0.2:27010,192.168.0.3:27010/dbname");

現在報錯了。
不知道PHP支持副本集連接嗎?
常規來說,如果第一個ip連接上的話,那後面兩個會忽略,如果第一個ip連不上的話,會自動連第二個或第三個。可是現在為什麼有時候會報錯?

------解決方案--------------------
$this->connection->setSlaveOkay(true);

如果是集群還得設置下主從。

6. MongoDB在ThinkPHP裡面怎麼進行資料庫操作

連接資料庫
$conn=new Mongo(「mongodb://sa:123@localhost」); #帶用戶名密碼
選擇資料庫和集合
$db=$conn->selectDB(「mydb」);

$collection = $db->selectCollection(『column』);
增刪改查這是我的建議,如果想要更加詳細的話,可以去後盾人學習相關的知識

7. MongoDB在ThinkPHP裡面怎麼進行資料庫操作

閱讀全文

與php連接mongodb資料庫連接相關的資料

熱點內容
ipad的app如何分屏 瀏覽:325
vb解析演算法 瀏覽:528
f盤總出現新建文件夾 瀏覽:939
女主勾人三觀不正快穿 瀏覽:203
vlc命令 瀏覽:699
如何搜尋mc伺服器 瀏覽:948
論壇觸屏手機版文件夾是哪個 瀏覽:407
mac命令刪除文件夾 瀏覽:814
退休職工醫保怎麼演算法 瀏覽:740
免費愛情片中文字幕 瀏覽:566
linux判斷字元串為空 瀏覽:202
鬼片小電影在線 瀏覽:29
如何看搶版電影 瀏覽:967
粵語影視app推薦 瀏覽:465
電影營免費完整版 瀏覽:232
如何關閉app的推送通知 瀏覽:533
文件加密狗沒有密碼了 瀏覽:851
vs修改編譯時編碼 瀏覽:463
韓國音樂老師電影 瀏覽:523
校園喪屍爆發小說 瀏覽:100