我有一个$项目作为普通的MongoDB查询工作,但我很难搞清楚如何为PHP-Mongo驱动程序编写它。这就是我所拥有的:
db.collection.aggregate(
{
$project:
{
projectField: {
$cond: {
if: { $eq: [ "$field", "-" ] },
then: "$otherfield", else: "Blah" }
}
}
}
)
我的具体问题是如何处理"如果"然后"然后"使用PHP语法。我已经google了,但我是MongoDB和PHP驱动程序的新手,我不确定我是否可以使用Google搜索正确的条款。
谢谢!
答案 0 :(得分:4)
您可以使用$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);