Mongodb Multiple и оператор с использованием PHP-кода

Я хочу запрос, подобный следующему из mongodb с использованием кода PHP:

select * from orders where mrn=1234 and status!=cancelled and status!=delivered and status!=draft

Я пробовал следующий код, который не работает:

$filterpatient = array("order.patientinfo.mrn" => $reqresult, '$and' => array(
array('order.orderitem.status' => array('$ne' => array('cancelled','delivered')))
));
$cursor = $collection->find($filterpatient)->sort(array('_id'=>-1));

0

Решение

Try:
$collection->find(array("order.patientinfo.mrn" => $reqresult, 'order.orderitem.status' => array('$nin' => array("cancelled","delivered","draft"))))->sort(array('_id'=>-1));

Mongodb запрос:

db.orders.find({"mrn":1234,"status":{"$nin":["cancelled","delivered","draft"]}});

Для более подробной информации кликните сюда

1

Другие решения

Ваш запрос неверен, во-первых, ваш запрос mrn также должен быть в предложении $ and, и вы должны использовать $nin (не в массиве) для вашего статуса. Ваш запрос статуса также был окружен двумя array( статьи.

$filterpatient = array('$and' => array(
"order.patientinfo.mrn" => $reqresult,
"order.orderitem.status" => array('$nin' => array('cancelled','delivered', 'draft'))
));
0

Ты можешь использовать MongoDB_DataObject как показано ниже:

$model = new MongoDB_DataObject();

$model->query("select * from orders where mrn=1234 and status!='cancelled' and status!='delivered' and status!='draft'");

while ($model->fetch()) {
var_dump($model);
}

ИЛИ ЖЕ:

$model = new MongoDB_DataObject('orders');

$model->whereAdd("mrn=1234 and status!='cancelled' and status!='delivered' and status!='draft'");

$model->find();

while ($model->fetch()) {
var_dump($model);
}
0
По вопросам рекламы [email protected]