PHP操作mongo数据库

一、连接数据库

$conn=new MongoClient('mongodb://localhost:27017');
//mongodb://username:password@host:port
$db=$conn->chili;   //选择数据库
$col=$db->test;  //选择集合
$dbs=$conn->listDBs();   //查看所有的表
$collections=$db->listCollections();

二、查询操作

//查询全部数据
$all=$col->find();
foreach ($all as $v){
    var_dump($v);
}

//查找一条 findOne

//设置查询语句
$query['title']='ddff';
//设置显示字段
$field=array('_id'=>false,'title'=>true,'value'=>true);
$res=$col->find($query,$field);
foreach ($res as $v){
    var_dump($v);
}

//排序
$data=$col->find()->sort(array('value'=>-1));//从大到小,1从小到大

//全部文档数
$data=$col->find()->count();
//var_dump($data);

//limit
$data=$col->find()->sort(array('value'=>-1))->limit(2);

//skip
$data=$col->find()->sort(array('value'=>-1))->skip(2);//跳过前两个

//skip和limit可结合实现分页效果
$page=1;
$everypage=2;
$data=$col->find()->sort(array('value'=>-1))->skip(($page-1)*$everypage)->limit($everypage);
//页码从第一页开始

//条件操作符
$query['value']=array('$gte'=>500);//>=500
$field=array('_id'=>false,'title'=>true,'value'=>true);//设置显示字段
$res=$col->find($query,$field);

//模糊查询
$query['title']=new MongoRegex('/南海/');
$field=array('_id'=>false,'title'=>true,'value'=>true);//设置显示字段
$res=$col->find($query,$field);

//将查询结果转化为数组
$res=iterator_to_array($res);
var_dump($res);

三、插入操作

$data=array(
    'title'=>'南海仲裁',
    'value'=>585
);
$col->insert($data);
/*
 **** insert第二个参数

$option=array(
'fsync'=> false,   真时,php将会告诉mongodb将当前写入数据直接写入硬盘,即使还没有全部从php文档写入mongodb数据库
'j'=> false,    真时,php将会告诉mongodb在数据插入成功之前就将本次修改写入日志
'w'=> 1,       0时写操作将不会被确认
'wtimeout'=>10000,
'timeout'=>10000   客户端等待服务器响应的超时时间,也就是如果php的服务器等待mongodb数据库写入数据的时间,如果超过了timeout规定的时间,就算本次写入失败
)
 * /

四、修改操作

$data=array('$set'=>array('value'=>800));
$res=$col->update(array('title'=>'南海仲裁'),$data);//只更新了第一条数据
/*
 **** update第三个参数
$option=array(
'upsert'=>false,   true表示如果当前文档存在就更新,不存在就创建
'multiple'=>true,  true表示更新所有
'fsync'=>false,
'w'=>1,
'wtimeout'=>10000,
'timeout'=>10000
)
 */
//=======================
$res=$col->update(array('title'=>'南海仲裁'),$data,array('multiple'=>true));//更新多条数据
var_dump($res);//$res['ok']=1

五、删除操作

$res=$col->remove(array('title'=>'ddddg'),array('justOne'=>true));
var_dump($res);//$res['ok']=1
/*
 **** 第二个参数
$option=array(
'justOne'=>false, true时只删除一条
'fsync'=>false,
'w'=>1,
'j'=>false,
'wtimeout'=>10000,
'timeout'=>10000
)
 */

六、操作完成要关闭连接

$conn->close();

会更新补充~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值