动态$和查询不工作mongodb

时间:2014-02-21 04:10:10

标签: php arrays mongodb

$SearchParam = $_GET["tag"];
$strcount = substr_count($SearchParam, ' ');
// Code to get the tag strings and create the search parm accordingly
if ($strcount > 0)
{
$fruitQuery = "'$" ."and' => array(";
for ($i = 1; $i <= $strcount; $i++)
{
    $strfind = strpos($SearchParam,' ');
    $fruitQuery = $fruitQuery . "array('ta' => " . "'" .substr($SearchParam,0,$strfind) . "'),";
    $SearchParam = substr($SearchParam,$strfind+1,strlen($fruitQuery));
    if ($i == $strcount)
    {
        $fruitQuery = $fruitQuery . "array('ta' => " . "'" . $SearchParam . "'))";
    }
}
}
else
{
$fruitQuery = array('ta' => $SearchParam);
}
$m = new Mongo();
$db = $m->selectDB('wikisrch');
$collection = new MongoCollection($db, 'dailymotion');
//$cursor = $collection->find($fruitQuery)->limit(12);
$cursor = $collection->find(array($fruitQuery));
var_dump($db->lastError());

这是我的代码,我正在基于搜索参数为mongodb数据库创建动态查询。在创建动态查询时,它会将其作为错误返回。

这是在$ fruitQuery中生成的字符串。输入是'相机生活'的地方 '$ and'=&gt; array(array('ta'=&gt;'camera'),array('ta'=&gt;'lifestyle'))

这是最后一条错误消息。     array(4){[“n”] =&gt; int(0)[“connectionId”] =&gt; int(1)[“err”] =&gt; NULL [“ok”] =&gt; float(1)}

当我查看Mongod控制台时,它显示以下消息。 $ err:“无效的运算符:$和,代码10068。

请你帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

这是由于javascript代码中的错误:

$ fruitQuery =“'$”。“和'=&gt;数组(”;它抛出一个错误:“。运算符后缺少名称。”

如果能解决问题,请告诉我。