Вызов хранимой процедуры через PHP в MongoDB - PullRequest
2 голосов
/ 15 марта 2012

Дорогой всем, кто может помочь,

У меня проблема с 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()");

Пожалуйста, помогите, я застрял на этом ... Я хочу называть это дерьмом только после обновления коллекции ...

Заранее спасибо, B

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Вы уверены, что используете ту же базу данных? Попробуйте упростить его до базового примера, например,

$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
)
1 голос
/ 15 марта 2012

Проверьте документацию:

http://php.net/manual/en/mongodb.execute.php

Назначаете ли вы возвращаемое значение execute () для переменной?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...