在MongoDB中通过PHP调用存储过程

时间:2012-03-15 09:04:11

标签: php mongodb stored-procedures mongodb-php

亲爱的每个人都可以提供帮助,

我有这个PHP> MongoDB问题,我想通过PHP调用存储过程(存储在db.system.js集合中)。

我没有参数,只有一个返回的JSON对象,如下所示:

{"archived":[the number of the archived messages]}

它在数据库服务器上的shell中运行良好,但是当我尝试通过PHP驱动程序调用它时,它只是不“说”任何东西......

我的代码如下所示:

$DB->execute(
    new MongoCode(
        "function () { return archiveMessages(); }"
    )
);

我也试图用这样的方式:

$DB->execute("archiveMessages()");

请帮助,我已经被困在这一个......我只想在更新集合之后再打电话给那个人......

提前谢谢你, 乙

2 个答案:

答案 0 :(得分:4)

您确定使用的是同一个数据库吗?尝试将其简化为基本示例,例如,

$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 :(得分:1)

查看文档:

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

您是否将execute()的返回值赋给变量?