2011-09-17 11 views
15

Non riesco a capire per la vita del mio per selezionare da una collezione con il parametro or. Non funziona affatto per me e non riesco a trovare alcuna documentazione su di esso per php.

Ecco il mio codice di esempio che non restituisce nulla, anche se esistono nella collezione:

$cursor = $products->find(
    array(
     '$or' => array(
      "brand" => "anti-clothes", 
      "allSizes" => "small" 
     ) 
    ) 
); 
+1

Ci sono questi concetti chiamati * capitalizzazione * e * * apostrofi ... Mi chiedo perché tanti sembrano dimenticare/ignorarli quando si fanno domande ... ': P' –

risposta

44
The $or operator lets you use boolean or in a query. 
You give $or an array of expressions, any of which can satisfy the query. 

hai fornito un solo elemento della matrice. Usa:

find(array('$or' => array(
    array("brand" => "anti-clothes"), 
    array("allSizes" => "small") 
))); 
+0

incredibile .. Grazie. questo ha funzionato. – Andrew

+0

@Andrew - È necessario contrassegnare le risposte come corrette facendo clic sul segno di spunta accanto alla risposta. –

+0

sì, ha detto che dovevo aspettare 4 minuti per accettare la risposta per qualche motivo – Andrew