如何在聚合方法中设置“allowDiskUse”选项

nit*_*ain 1 php mongodb

如何allowDiskUse在 PHP 的聚合方法中设置选项?
我尝试了以下方法但没有成功:

$out = $dbnew->$a->aggregate(
  array('$match' => $filter_array),
  array('$sort' => $sorting),
  array('$skip' => $start),
  array('$allowDiskUse' => true));
Run Code Online (Sandbox Code Playgroud)

Sal*_*ali 5

您在错误的地方提供了选项。你需要使用这个

public array MongoCollection::aggregate ( array $pipeline [, array $options ] )
Run Code Online (Sandbox Code Playgroud)

并且您将所有管道作为数组列表提供,因此执行以下操作:

public array MongoCollection::aggregate ( array $op [, array $op [, array $... ]] )
Run Code Online (Sandbox Code Playgroud)

请记住,您至少需要1.5.0版本的 PHP 驱动程序。

所以定义你的管道和选项:

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

$options = array("allowDiskUse" => true);
Run Code Online (Sandbox Code Playgroud)

并使用它:

$out = $dbnew->$a->aggregate($pipeline, $options);
Run Code Online (Sandbox Code Playgroud)