2017-01-17 4 views
2

以下のクエリを実行すると、mongoシェルで結果が表示されます。

サンプルレコード

{ 
    "_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") 
} 

クエリ

db.user_config.aggregate({$group: 
{ 
    _id : "$subscription_id", 
    list: 
    { 
     $push: 
     { 
      _id: "$_id", 
      vendor_id: "$vendor_id" 
     } 
    } 
}}) 

結果

/* 1 */ 
{ 
    "result" : [ 
     { 
      "_id" : 14, 
      "list" : [ 
       { 
        "_id" : ObjectId("587e21df6e79d255011a9c6a"), 
        "vendor_id" : "user_101" 
       }, 
       { 
        "_id" : ObjectId("587e21df6e79d255011a9c6b"), 
        "vendor_id" : "user_101" 
       } 
      ] 
     } 
    ], 
    "ok" : 1.0000000000000000 
} 

しかし、同じことlaravelによって次のエラーが発生します。 ..

以下

laravelコード

$configuration_list = UserConfig::raw()->aggregate([ 
      '$group' => [ 
        '_id' => '$subscription_id', 
        'list' => ['$push' => 
        ['_id' => '$_id', 'vendor_id' => '$vendor_id']] 
       ] 
      ] 
     ); 

は、誰かが私は、この問題を解決する助けてくださいです

答えて

0

Wrap the aggregation pipeline steps in an array

:$パイプラインは( "$グループ" 予期しないインデックス)がリストではありません
$pipeline = [ 
    [ 
     '$group' => [ 
      '_id' => '$subscription_id', 
      'list' => [ 
       '$push' => [ 
        '_id' => '$_id', 
        'vendor_id' => '$vendor_id' 
       ] 
      ] 
     ] 
    ] 
]; 
$configuration_list = UserConfig::raw()->aggregate($pipeline); 
+0

私はあなたのコードを試していましたが、それ以前でも空の応答が返されました。同じクエリがmongoシェルで結果を与えるので実際には結果が期待されます – Sharath

関連する問題