Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



php操作mongodb遇到的那些坑

最近开发新站点的时候需要用mongodb做图片存储,于是就开始学些php+mongodb  由于是临时抱佛脚,所有掉进了很多坑。

怎么安装扩展啥的我就不介绍了我这里直接介绍php代码部分:

1,链接数据库部分:


<?php
$username="test";
$passwd="test";
$host="127.0.0.1";
$port="27017";
$dbb="test";
$conn = new MongoClient("mongodb://{$username}:{$passwd}@{$host}:$port/$dbb");
$this->mongodb = $conn->$dbb;
 ?>
2,数据库查询:
$this->table->find(); 查询table集合中的所有内容;
条件查询[按照$id查询];
$this->mongodb->table->find(array('_id'=>new MongoId($id)));
3,find出来的结果集是MongoCursor不能直接被打印出来的,必须使用循环既游标的方式来逐条获取数据,
或者用iterator_to_array()函数来转换成数组。
列入:
$query=$this->mongdb->table->find();
$res=iterator_to_array($query);
这里需要注意的是iterator_to_array()转换的数组是以$id做为key的,如果不想要$id做key可以加上第二个参数false
既:
$res=iterator_to_array($query,false);
4,如果要得到_id 直接使用$value['_id']就可以了,使用的时候系统会自动得到里面的$id
暂时先写到这里以后遇到了再更新,工期比较急先干活儿了。

5,备份与还原  终端运行 不是在mongoshell中运行

备份:mongodump --host 127.0.0.1:27017 -u username -ppassword -d database -o 存储路径

还原:mongorestore -h localhost:27017 -u username -ppassword --drop  --db database --dir 备份文件路径


浏览588  评论0  Alex于 2017-2-9 16:25
发言