Php $pipeline不是Laravel中的列表(意外索引:“$group”)
运行以下查询时,结果将显示在mongo shell中 样本记录Php $pipeline不是Laravel中的列表(意外索引:“$group”),php,mongodb,laravel,mongodb-query,aggregation-framework,Php,Mongodb,Laravel,Mongodb Query,Aggregation Framework,运行以下查询时,结果将显示在mongo shell中 样本记录 { "_id" : ObjectId("587e21df6e79d255011a9c6a"), "vendor_id" : "101", "subscription_id" : 14, "created_at" : ISODate("2017-01-17T13:53:35.272Z") } { "_id" : ObjectId("587e21df6e79d255011a9c6c"),
{
"_id" : ObjectId("587e21df6e79d255011a9c6a"),
"vendor_id" : "101",
"subscription_id" : 14,
"created_at" : ISODate("2017-01-17T13:53:35.272Z")
}
{
"_id" : ObjectId("587e21df6e79d255011a9c6c"),
"vendor_id" : "102",
"subscription_id" : 14,
"created_at" : ISODate("2017-01-17T13:56:35.272Z")
}
/* 1 */
{
"result" : [
{
"_id" : 14,
"list" : [
{
"_id" : ObjectId("587e21df6e79d255011a9c6a"),
"vendor_id" : "user_101"
},
{
"_id" : ObjectId("587e21df6e79d255011a9c6b"),
"vendor_id" : "user_101"
}
]
}
],
"ok" : 1.0000000000000000
}
查询
db.user_config.aggregate({$group:
{
_id : "$subscription_id",
list:
{
$push:
{
_id: "$_id",
vendor_id: "$vendor_id"
}
}
}})
结果
{
"_id" : ObjectId("587e21df6e79d255011a9c6a"),
"vendor_id" : "101",
"subscription_id" : 14,
"created_at" : ISODate("2017-01-17T13:53:35.272Z")
}
{
"_id" : ObjectId("587e21df6e79d255011a9c6c"),
"vendor_id" : "102",
"subscription_id" : 14,
"created_at" : ISODate("2017-01-17T13:56:35.272Z")
}
/* 1 */
{
"result" : [
{
"_id" : 14,
"list" : [
{
"_id" : ObjectId("587e21df6e79d255011a9c6a"),
"vendor_id" : "user_101"
},
{
"_id" : ObjectId("587e21df6e79d255011a9c6b"),
"vendor_id" : "user_101"
}
]
}
],
"ok" : 1.0000000000000000
}
但是,当通过laravel执行相同的操作时,会出现以下错误$管道不是列表(意外索引:$group)
下面是laravel代码
$configuration_list = UserConfig::raw()->aggregate([
'$group' => [
'_id' => '$subscription_id',
'list' => ['$push' =>
['_id' => '$_id', 'vendor_id' => '$vendor_id']]
]
]
);
有人能帮我解决这个问题吗
我尝试使用您的代码,甚至更早,但返回的是空响应。实际上结果是预期的,因为相同的查询在MongoShell中给出了结果