Также как и в консоли mongo, в php можно использовать условные операторы $lt
(меньше чем), $gt
(больше чем),
$lte
(меньше или равно) и $gte
(больше или равно) для операций сравнения над значениями. Эти операторы аналогичны операциям <, >, <= и >=
соответственно.
Найдем документы, в которых значение age меньше 24:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array("age"=> array('$lt' => 24)); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; echo "Age:" . $document["age"] . "</p>"; } $con->close();
Соответственно, если бы мы хотели найти документы с age со значением больше, чем 24, то мы могли бы использовать следующее выражение:
$cond=array("age"=> array('$gt' => 24))
Оператор $ne
позволяет найти документы, которые не соответствуют некоторому условию. Например, найдем все документы со значением
поля age не равным 25:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array("age"=> array('$ne' => 25)); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; echo "Age:" . $document["age"] . "</p>"; } $con->close();
Оператор $in
определяет массив значений, одному из которых должно соответствовать значение поля:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array("age"=> array('$in' => array(23, 24, 25))); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; echo "Age:" . $document["age"] . "</p>"; } $con->close();
Оператор $all
определяет массив значений, только теперь поле документа должно иметь все эти значения:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array("languages"=> array('$all' => array("english", "french"))); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; echo "Age:" . $document["age"] . "</p>"; } $con->close();
Оператор $or определяет набор пар ключ-значение, которые должны иметься в документе. Если документ имеет хоть одну такую пару ключ-значение, то он соответствует данному запросу:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array('$or' => array(array("age" => 23), array("company.name" => "Apple"))); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; } $con->close();
Оператор $exists
позволяет проверить наличие в документах ключа. Например, получим все документы, в который есть ключ company:
$con = new MongoClient(); $collection= $con-> test-> persons; $cond=array("company"=> array('$exists' => true)); $list = $collection->find($cond); while($document = $list->getNext()) { echo "<p> Name:" . $document["name"] . "</br>"; echo "Company:" . $document["company"] ["name"] . "</p>"; } $con->close();