我正在使用MongoDB和PHP,并尝试基于生成的数组执行$in。
当我手动指定相同的数组时,它是有效的,但当我构建它时,它会返回具有相同数据的任何结果。
我有:
$settings = array();
foreach($items as $item) {
$settings[] = $item['id'];
}
//Settings is the same as this
$setting2 = array(1,2,3,4,5,6,7,8);
//This returns no results
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $settings)));
//This does return results
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $setting2)));
我已经使用进行了检查
$cursor->info()
数组中的项是相同的。
你知道我做错了什么吗?
谢谢!
数字的数据类型可能不相同。请尝试对生成的数组和指定的数组使用var_dump()。您可能会看到其中一个将它们作为字符串中的数字,另一个则作为简单整数。