2017-08-24 14 views
0

我用的MongoDB和PHP(Laravel)工作,並在執行上的PHP(Laravel)的複雜查詢發現的困難很多,工作都在蒙戈助推器工作順利進行查詢,但是當我執行它們在PHP(Laravel)真的讓我艱難的時期。任何一個可以幫助我,我怎麼能執行他們像原始查詢在PHP(Laravel)。用的MongoDB和PHP(Laravel)

回答

0

Raw queries in Laravel

有時你可能需要在查詢中使用原始的表達。這些表達式將被注入的查詢字符串,所以要小心,不要製造任何SQL注入點!要創建原始表達式,你可以使用DB::raw方法:

$users = DB::table('users') 
        ->select(DB::raw('count(*) as user_count, status')) 
        ->where('status', '<>', 1) 
        ->groupBy('status') 
        ->get(); 

另一個例子

$result = DB => collection('PMS')->raw(function ($collection){ 
    return $collection->aggregate(array(
     array('$match' => array("PanelID" => "A00898")), 
     array('$project' => array('EventTS' => 1, 'MainsPower' => 1)), 
     array(
      '$unwind' => array(
       'path' => "$MainsPower", 
       'includeArrayIndex' => "arrayIndex", 
       'preserveNullAndEmptyArrays' => true 
      ) 
     ), 
     array(
      '$project' => array(
       '_id' => 0, 
       'MainsPower' => 1, 
       'timestamp' => array(
        "$add" => array(
         "$EventTS", 
         array("$multiply" => array(60000, "$arrayIndex")) 
        ) 
       ) 
      ) 
     ) 
    )); 
}); 
+0

太感謝你了:-) – FaDi

+0

如果幫你標記的答案,以便別人知道這是有益的 –

0

有時你可能需要在查詢中使用原始的表達。這些表達式將被注入的查詢字符串,所以要小心,不要製造任何SQL注入點!要創建原始表達式,你可以使用DB::raw方法:

$result = DB::select(
    DB::raw('your query here') 
); 

Reference

+0

謝謝!我會嘗試這種方式太:-) – FaDi