2014-12-01 5 views
2

У меня есть проект $, работающий как обычный запрос MongoDB, но мне трудно понять, как его записать для драйвера PHP-Mongo. Вот что я получил:

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

      } 
     } 

) 

Мой конкретный вопрос заключается в том, чтобы иметь дело ж/«если» и «тогда» с использованием синтаксиса PHP. Я googled, но я новичок в 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); 
Смежные вопросы