如何在yii中执行MongoImport命令?

时间:2013-12-28 10:29:29

标签: php mongodb yii

我使用yiimongodbsuite扩展连接到mongodb,如何在php中执行mongoimport命令,这里是我的代码,

<?php

// connect

$m = new Mongo("mongodb://192.168.1.7:27017");

$db = $m->test;

$collection = $db->cartoons;

$db = 'mongoimport --db test --collection ' . $collection . ' --file test.csv --type csv'; 

    //Here after how to proceed to import the data??
?>

1 个答案:

答案 0 :(得分:2)

首先,yiimongodbsuite与执行shell命令无关,它只使用mongodb php驱动程序。

您只是用字符串覆盖$db值。它没有做任何事情。

您也可以用以下代码替换所有代码:

<?php

$command = 'mongoimport 
    --db test 
    --collection cartoons 
    --file test.csv 
    --type csv 
    --host 192.168.1.7';
$result = exec($command);

虽然您php.ini需要允许使用exec,但共享主机通常不允许这样做。您需要注意的另一件事是,您的脚本可能需要一些时间来执行,具体取决于您的csv有多大。

所以你可以通过添加:

来改善这一点
<?php

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

虽然这再次要求您的主持人允许您首先执行ini_set()

Curtsy向@ asya-kamsky指出主持人