MongoDB带有AND条件的聚合查询


MongoDB Aggregate query with AND condition

我在PHP中有这个MongoDB查询:

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

工作。现在我想添加另一个where条件AND:

experiment = $experimentInput

我该怎么做?

try this

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

只需将具有条件的表达式附加到现有的 $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 当必须使用相同的字段或操作符时,必须使用操作符在多个表达式中指定。