2

助けていただける親愛なる皆様、

この PHP > MongoDB の問題があります。PHP 経由でストアド プロシージャ (db.system.js コレクションに格納されている) を呼び出したいです。

パラメータはありません。返される JSON オブジェクトは次のようになります。

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

データベースサーバーのシェルではうまく機能しますが、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 に答える