gpt4 book ai didi

php mongoDB异常: A pipeline stage specification object must contain exactly one field

转载 作者:可可西里 更新时间:2023-11-01 09:08:58 25 4
gpt4 key购买 nike

我必须使用 php 将此查询从 mysql 转换为 mongoDB

select content_id ,member_id, content_type_id,social_network_id from recent_activty where  content_type_id  = 10  AND social_network_id = 9 order by id desc  group by  content_id  limit 5

我需要这样的结果:

array(2) {
["content_id"]=>
string(6) "122558"
["member_id"]=>
string(6) "180306",
["content_type_id"]=>
string(6) "10",
["social_network_id"]=>
string(6) "9",
},
array(2) {
["content_id"]=>
string(6) "122549"
["member_id"]=>
string(6) "180306",
["content_type_id"]=>
string(6) "10",
["social_network_id"]=>
string(6) "9",
},
array(2) {
["content_id"]=>
string(6) "122528"
["member_id"]=>
string(6) "180306",
["content_type_id"]=>
string(6) "10",
["social_network_id"]=>
string(6) "9",
},

我试过聚合框架

 $result = $collection->aggregate(array(
'$match' => array('content_type_id'=>"10", "social_network_id"=>"9"),
'$project' => array('content_type_id'=>1, "social_network_id"=>1, "content_id"=>1),
'$group' => array('_id' => array('member_id'=>'$member_id')),
'$sort' => array('_id'=>-1),
'$limit' => 5,
));

但是我得到了这个错误

["errmsg"]=>
string(80) "exception: A pipeline stage specification object must contain exactly one field."

我试过了

$result = $collection->aggregate(array(
'$match' => array('content_type_id'=>"10", "social_network_id"=>"9"),
'$project' => array("_id"=>'$content_id' ,'content_type_id'=>1),
'$group' => array('_id' => array('content_id'=>'$content_id', 'member_id'=>'$member_id')),
)
);

我是 mongoDB 的新手,我花了很多时间来转换这个查询并解决这个错误,任何人都可以帮助我

谢谢

最佳答案

您可以使用 querymongo.com将 mysql 查询转换为 mongo。对于这个问题,你的代码应该是这样的。

$result = $collection->aggregate(array(
array(
'$match' => array('content_type_id'=>"10", "social_network_id"=>"9"
)),
array(
'$project' => array("_id"=>'$content_id' ,'content_type_id'=>1
)),
array(
'$group' => array('_id' => array('content_id'=>'$content_id', 'member_id'=>'$member_id'))),
)
);

$match , $group (管道操作符)应该在数组内。 http://php.net/mongocollection.aggregate

关于php mongoDB异常: A pipeline stage specification object must contain exactly one field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20156793/

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