0

データベースを MySQL から MongoDB に変換しようとしていますが、問題があります。クエリで MongoDB を検索する方法がわかりません。

   $hd='';
   $count = count($args[1]);
   for($i=0;$i<$count-1;$i++){
       $hd.="playerId='" . $args[1][$i] . "' OR ";
   }
   $hd.="playerId='".$args[1][$count-1]."'";
   $h1=mysql_query(sprintf("SELECT * FROM player where ".$hd));

誰でもそれを修正する方法を知っていますか?

4

2 に答える 2

0

あなたの質問はMongo db select where in array of _id? に似ています

私はに精通していませんがMongoDB、複数を使用する代わりにステートメントを使用して、クエリをより読みやすくするORことができます。IN()

$h1 = mysql_query(
    "SELECT * FROM player where playerId IN (" . implode(", ", $args[1]) . ")"
);

MondoDBに関しては、これで必要な結果が得られるはずです。

$m = new Mongo();
$db = $m->selectDB("database"); // your db
$mc = new MongoCollection($db, 'player');
$mc->find(
    array(
        'playerId' => array(
            '$in' => $args[1]
        )
    )
);

文法エラーを見つけた場合は、私を撃たないでください:)

于 2012-09-02T11:11:45.040 に答える
0

PHP - MongoDB の高度なクエリ

$collection->find([
    'playerId' => ['$in' => [1, 2, 3]]
]);
于 2012-10-24T22:47:36.263 に答える