我已经用php为Mongodb编写了一个脚本,当限制为静态数时,它的工作正常,而当我们在脚本中传递变量时,它会抛出错误。
脚本代码为:
array(
"\$match" => array(
"\$or" => array(
array(
'title' => new \MongoDB\BSON\Regex($queryString),
),
array(
'description' => new \MongoDB\BSON\Regex($queryString),
),
array(
'master.title' => new \MongoDB\BSON\Regex($queryString),
),
),
"\$and" => array(
array(
'created_on' => new \MongoDB\BSON\Regex($filterDate)
)
)
)
),
array(
'$sort' => array(
'created_on' => -1
)
),
array(
'$limit' => $filterLimit,
)
'$ limit'=> $ filterLimit,在我们传递静态数字时无法正常工作。
如果我们替换
array(
'$limit' => $filterLimit,
)
到
array(
'$limit' => 10,
)
工作正常。以下是错误
致命错误:未捕获的MongoDB \ Driver \ Exception \ CommandException:必须将限制指定为数字
答案 0 :(得分:1)
$filterLimit
可能是字符串,请尝试将其强制转换为整数:
array(
'$limit' => intval($filterLimit),
)