2014-12-01 50 views
2

我有一個$項目作爲一個正常的MongoDB查詢工作,但我很難搞清楚如何爲PHP-Mongo驅動程序編寫它。以下是我得到的:

db.collection.aggregate(
    { 
     $project: 
      { 
      projectField: { 
       $cond: { 
        if: { $eq: [ "$field", "-" ] }, 
        then: "$otherfield", else: "Blah" } 
       } 

      } 
     } 

) 

我的具體問題是如何使用PHP語法處理「if」和「then」。我已經搜索了一下,但是對MongoDB和PHP驅動程序來說是新手,我不確定我是否用正確的術語進行搜索。

謝謝!

回答

2

你可以使用的$cond表達了簡化的語法:

{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] } 

這樣的陳述可以分解和下文取代:

$if => array('$eq' => array('$field','-')) 

$cond => array($if,'$otherfield','Blah') 

$projectField => array('$cond' => $cond) 

$pipeline => array('$project' => array('projectField' => $projectField)) 

$out = $c->aggregate($pipeline);