2016-10-13 3 views
0

Ich habe diese MongoDB Abfrage in PHP:MongoDB Aggregate Abfrage mit UND-Bedingung

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

die funktioniert. Jetzt möchte ich hinzufügen, wo eine Bedingung mit UND:

experiment = $experimentInput 

Wie gehe ich darüber?

Antwort

0

hängen Sie einfach den Ausdruck mit der Bedingung an die bestehende $match Abfrage:

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

Vom docs:

MongoDB stellt einen impliziten AND Vorgang, wenn ein Komma Angabe getrennt Liste der Ausdrücke. Die Verwendung eines expliziten AND mit dem Operators ist erforderlich, wenn das gleiche Feld oder der gleiche Operator in mehreren Ausdrücken angegeben werden muss.

+0

Vielen Dank – mongoDB

1

versuchen diese

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

Vielen Dank – mongoDB

+1

Wenn es hilfreich für Sie dann nicht vergessen zu upvote;) – shubham715

+0

Ich habe noch nicht 15 Rufpunkte und dann leider kann ich nicht wählen. Entschuldigung – mongoDB