导航:首页 > 编程语言 > 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数据库连接相关的资料

热点内容
丹尼尔斯斯托米·丹尼尔斯中出 浏览:151
推荐几部食人族的老电影 浏览:448
怎么看汇编程序运行的结果 浏览:911
怎么算程序员催更 浏览:46
c编程研究前景 浏览:322
电影最全的网站 浏览:918
爱因斯坦电影天才百度云链接 浏览:75
流氓不可以看的视频 浏览:54
代号白雪公主的电影 浏览:388
女主在军校很厉害的小说 浏览:516
米思齐为什么要编译才有效 浏览:283
法人如何用app分配权限 浏览:486
安卓手机游戏怎么导入苹果 浏览:537
什么是配置文件java 浏览:646
男主体质特殊只能和女主 浏览:47
中国算法和别的国家不一样吗 浏览:517
法国电影《狂怒》未删减版 浏览:154
金万维无法pin通服务器地址 浏览:825
linuxc语言定时 浏览:25