带条件

时间:2016-10-13 07:38:43

标签: php mongodb mongodb-query aggregation-framework

我在PHP中有这个MongoDB查询:

$data = $collection->aggregate(
    array('$match' => array(
        'PATIENT_ID' => $singoloPatientId
    )),
    array('$group' => array(
        '_id' => '$PATIENT_ID',
        'massi1' => array(
            '$max' => $dnameth_value
        )
    ))
);

哪个有效。现在我想用AND添加另一个where条件:

experiment = $experimentInput

我该怎么做?

2 个答案:

答案 0 :(得分:1)

试试这个

$data=$collection->aggregate(
    array('$match'=> array(
        '$and' => array(
            'PATIENT_ID'=>$singoloPatientId,
            'experiment'=>$experimentInput
            ))),
    array('$group' => array(
        '_id' => '$PATIENT_ID',
        'massi1' => array(
            '$max' => $dnameth_value
        )
    ))
)

答案 1 :(得分:0)

只需将带有条件的表达式附加到现有的 $match 查询中:

$data = $collection->aggregate(
    array('$match' => array(
        'PATIENT_ID' => $singoloPatientId,
        'experiment' => $experimentInput
    )),
    array('$group' => array(
        '_id' => '$PATIENT_ID',
        'massi1' => array(
            '$max' => $dnameth_value
        )
    ))
);

来自 docs

  

MongoDB在指定逗号时提供隐式AND操作   分隔的表达式列表。使用带有 $and 的明确AND   当相同的字段或操作符必须时,操作符是必需的   在多个表达式中指定。