Условные операторы

Последнее обновление: 30.10.2015

Также как и в консоли 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();
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850