gpt4 book ai didi

php - 管道阶段规范对象必须包含一个带有 php mongo 聚合的字段

转载 作者:IT老高 更新时间:2023-10-28 12:29:33 25 4
gpt4 key购买 nike

我正在尝试将聚合与项目、匹配和排序一起使用,但我得到一个异常(准确地说是 MongoResultException)说

异常:管道阶段规范对象必须只包含一个字段。

当我不使用排序和限制时它工作正常,但我需要它们。我不使用 find() 的原因是我在某处读到它可以提高性能。请帮忙

$query = array(.... //An actual query that works with find()
$collection = $this->db->CollectionName;
$project = array(
'$project' => array(
'Field1' => 1,
'Field2'=> 1,
'Field3'=> 1,
'Field4' => 1
)
);
$match = array( '$match'=>$query);
$sort = array('Field3' => -1, 'Field4'=>-1);
$limit = array('$limit' => 100);


$result = $collection->aggregate(array($match,$project,$sort,$limit));
return $result;

最佳答案

看起来问题出在您的 $sort 作业上。你有

   $sort = array('Field3' => -1, 'Field4'=>-1);

实际上并没有给出 $sort 阶段规范。不应该是:

    $sort = array('$sort' => array( 'Field3' => -1, 'Field4'=>-1 ) );

关于php - 管道阶段规范对象必须包含一个带有 php mongo 聚合的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39060221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com