Mongodb-PHP:使用“$and”函数查找查询无效
Mongodb-PHP: find query with '$and' function is not working
我正在研究 mongodb & php 并且想根据多个条件检索数据。
我想检索 form_status 仅处于活动状态和草稿状态的表单
我的查询是:
$formData = $formInfo->find(array('team_id' => $_GET['id'], '$and' =>array('form_status' => 'Active','form_status' => 'Draft')));
它不起作用。 PHP 中的正确语法是什么??
$and
运算符将 "real array" 文档作为参数。在 PHP 中,您包装数组以产生这种语法:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'$and' => array(
array( 'form_status' => 'Active' ),
array( 'form_status' => 'Draft' )
)
)
);
请注意,除非 "form_status" 实际上是数组本身,否则这真的没有任何意义。在这种情况下,$all
运算符是一种更简洁的方法:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'form_status' => array(
'$all' => array( 'Active', 'Draft' )
)
)
);
再一次,如果这个字段不是数组,那么你的意思是 $or
but that can also be more clearly written for the same field with $in
:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'form_status' => array(
'$in' => array( 'Active', 'Draft' )
)
)
);
所以 $all
之于 $and
就像 $in
之于 $or
,但只允许您使用相同的字段而无需指定完整的文档形式
我正在研究 mongodb & php 并且想根据多个条件检索数据。
我想检索 form_status 仅处于活动状态和草稿状态的表单
我的查询是:
$formData = $formInfo->find(array('team_id' => $_GET['id'], '$and' =>array('form_status' => 'Active','form_status' => 'Draft')));
它不起作用。 PHP 中的正确语法是什么??
$and
运算符将 "real array" 文档作为参数。在 PHP 中,您包装数组以产生这种语法:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'$and' => array(
array( 'form_status' => 'Active' ),
array( 'form_status' => 'Draft' )
)
)
);
请注意,除非 "form_status" 实际上是数组本身,否则这真的没有任何意义。在这种情况下,$all
运算符是一种更简洁的方法:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'form_status' => array(
'$all' => array( 'Active', 'Draft' )
)
)
);
再一次,如果这个字段不是数组,那么你的意思是 $or
but that can also be more clearly written for the same field with $in
:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'form_status' => array(
'$in' => array( 'Active', 'Draft' )
)
)
);
所以 $all
之于 $and
就像 $in
之于 $or
,但只允许您使用相同的字段而无需指定完整的文档形式