我正在尝试将数据库从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));
任何人都知道如何修复它?
答案 0 :(得分: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]
)
)
);
如果你发现一些语法错误,请不要开枪:)
答案 1 :(得分:0)
<强> PHP - MongoDB Advanced Queries 强>
$collection->find([
'playerId' => ['$in' => [1, 2, 3]]
]);