如果查询,我有以下内容。
if(($version[0] == 1)||($version[1] > 6)||($version[2]>=14 && $version[1] == 6))
{
echo "true";
}
现在我希望将此查询转换为mongodb查询。 在mongo集合中,我有以下条目:
{
"main_version" : 0,
"sub_version" : 6,
"build_version" : 14,
"module" : "Co2",
"active" : 1
}
当我尝试以下查询时,我收到一个mongo错误。
$where = array('$or' => array(
array('main_version'=> (int)$version[0]),
array('sub_version'=> array('$gt'=> (int)$version[1])),
array('$and' => array('build_version' => array('$gte'=> (int)$version[2])),
array('sub_version' => (int)$version[1]),
),
array('active'=> 1),
),
);
错误:无法规范化查询:BadValue并需要一个数组'
有人知道如何解决此查询吗?
答案 0 :(得分:2)
好吧,6年前在php工作但我认为你的$和运算符应该接受一系列查询,
类似于array('$and' => array(array('build_version' => array('$gte'=> (int)$version[2])), array('sub_version' => (int)$version[1]))
'和'接受数组,因为你正在为'或'做opeartor,这里传递查询而不是数组。
答案 1 :(得分:0)
是的,额外的阵列是溶剂。 TX