Дорогие, кто может помочь,
У меня есть эта проблема PHP> MongoDB, я хочу вызвать хранимую процедуру (хранящуюся в коллекции db.system.js) через PHP.
У меня нет параметров, только возвращаемый объект JSON, который выглядит так:
{"archived":[the number of the archived messages]}
Он отлично работает в оболочке на сервере базы данных, но когда я пытаюсь вызвать его через PHP-драйвер, он просто ничего не говорит »
Мой код выглядит так:
$DB->execute( new MongoCode( "function () { return archiveMessages(); }" ) );
Я также попытался использовать так:
$DB->execute("archiveMessages()");
Пожалуйста, помогите, я застрял в этом … Я только хочу назвать это sh * t после обновления коллекции …
Заранее спасибо, B
Вы уверены, что используете одну и ту же базу данных? Попробуйте упростить его до базового примера, например,
$m = new Mongo(); $db = $m->foo; $db->system->js->save(array("_id"=>"archiveMessages", "value"=>new MongoCode("function() { return 3; }"))); print_r($db->execute("archiveMessages()"));
Результаты в:
Array ( [retval] => 3 [ok] => 1 )
Проверьте документацию:
http://php.net/manual/en/mongodb.execute.php
Вы назначаете возвращаемое значение execute () переменной?