2

亲爱的每个可以帮助的人,

我有这个 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()");

请帮忙,我被困在了这个......我只想在更新收藏后调用那个sh * t......

提前谢谢你,B

4

2 回答 2

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
)
于 2012-03-29T16:02:37.273 回答
1

检查文档:

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

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

于 2012-03-15T15:43:17.917 回答