I'm using MongoDB and PHP and trying to do a $in based on a generated array.
When I specify the same array manually, it works, but when I build it, it return any results with the same data.
There's what I have:
$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)));
I've checked using
$cursor->info()
And the items in the array are the same.
Any ideas what I'm doing wrong?
Thanks!
It's likely that the data types of the numbers are not the same. Try using var_dump() on the built array, and the specified array. You'll probably see one has them as numbers in a string, and the other as simple integers.