我正在研究mongodb& php&想要根据多种条件检索数据。
我想要检索form_status同时处于活动状态的表单。仅草稿
我的查询是:
$formData = $formInfo->find(array('team_id' => $_GET['id'], '$and' =>array('form_status' => 'Active','form_status' => 'Draft')));
它不起作用。什么是PHP中正确的语法?
答案 0 :(得分:1)
$and
运算符采用“真实数组”的文档作为参数。在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
但是对于$in
的相同字段也可以更明确地写出:
$formData = $formInfo->find(
array(
'team_id' => $_GET['id'],
'form_status' => array(
'$in' => array( 'Active', 'Draft' )
)
)
);
所以$all
$and
$in
$or
到{{1}}是什么,但只允许您使用相同的字段而不指定完整的文档格式