2014-10-04 23 views
0

如何在PHP中設置聚合方法中的allowDiskUse選項?
我曾嘗試以下沒有任何成功:如何在聚合方法中設置「allowDiskUse」選項

$out = $dbnew->$a->aggregate(
    array('$match' => $filter_array), 
    array('$sort' => $sorting), 
    array('$skip' => $start), 
    array('$allowDiskUse' => true)); 
+1

只有在PHP驅動程序的新版本:http://php.net/manual/en/mongocollection。 aggregate.php否則你將不得不手動使用db-> command() – Sammaye 2014-10-04 19:51:55

回答

3

您提供在錯誤的地點選擇。您需要使用this

public array MongoCollection::aggregate (array $pipeline [, array $options ]) 

和您所提供的所有管道作爲陣列的列表,這樣做:

public array MongoCollection::aggregate (array $op [, array $op [, array $... ]]) 

採取記住,你需要至少1.5.0版本的PHP驅動程序。

所以定義你的管道和選項:

$pipeline = array(
    array('$match' => $filter_array), 
    array('$sort' => $sorting), 
    ... 
); 

$options = array("allowDiskUse" => true); 

,並使用它:

$out = $dbnew->$a->aggregate($pipeline, $options);