这篇文章主要介绍了关于导出mongo库到本地,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
需求:
在yii框架架下,导出生产mongo库中的数据到json文件,下载到本地
调用:
1.在/web/Controllers/TestController.php下引用
public function actionExport()
{
public $target='/WWW/web/html/import/'; //windows 导出文件所在目录
$export =new Export($target,'QuestionUser',96);
}2.在/web/model下创建Export.php
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
target = $target;
$this->db=$model;
$this->model = new $model;
$this->qId = (int)$qId;
$this->export();
}
/**
* 导出mongo生产数据用于本地测试
* @author lizhihui
* @date 2018-5-29
*/
public function Export()
{
$iCount = $this->model->count(array(
'conditions'=>array(
'qId'=>array('equals' => $this->qId),
))
);
if(!$iCount){
$this->showMessage('数据为空');
}
$nStart = 0; //起始记录
$nCount = 100; //每次处理记录数
$nPage = intval($iCount/$nCount)+1;
$aReault=array();
for ($i=0;$i<$nPage;) {
$sWhere = array(
'conditions'=>array(
'qId'=>array('equals' => $qId),
),
'limit'=>$nCount,
'offset'=>$nStart,
);
$arr = $this->model->findAll($sWhere);
if(!is_dir($this->target)){
mkdir($this->target);
}
//写入文件
$limit = 1000;//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
foreach ($arr as $key => $val)
{
if($key!=0 && $key%$limit==0){
ob_flush();
flush();
}
$attr=$val->attributes;
//整理数据,删除不必要的键值
unset($attr['_id']);
unset($attr['current_db']);
unset($attr['pageInfo']);
$aReault[]=$attr;
}
$i++;
$nStart = $i*$nCount;
}
$filePath=$this->target.$this->db.'_'.$this->qId.'.json';
file_put_contents($filePath,json_encode($aReault));
//下载文件
if(!file_exists($filePath)){
$this->showMessage('目标文件不存在!');
}
header('Content-Type: application/json');
header('Content-Disposition: attachment; filename='.$this->db.'_'.$this->qId.'.json');
header('Accept-Ranges: bytes');
echo file_get_contents($filePath);
}
/**
* 信息输出
*/
private function showMessage($str, $err = 0) {
if (!$str) {
return false;
}
if ($err) {
echo "[ERROR]";
} else {
echo "[SUCCESS]";
}
echo date("Y-m-d H:i:s", time()) . " " . $str . "\n";
exit;
}
}以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:









