我有一个场景:
我在数组中有一些ID:[5adcbe766803fa6b048b4599,5adcbe766803fa6b048b4567]
$ids = [5adcbe766803fa6b048b4599, 5adcbe766803fa6b048b4567] ;
当我试图找到:
db.users.find(array('_id': array('$nin' : '$ids')));
我得到一些不正确的结果。
但如果我使用其他字段,如:
db.users.find(array('name': array('$nin' : 'asghar')));
现在结果是正确的。
答案 0 :(得分:1)
你不能以这种方式传递id。
db.users.find(array('_id': array('$nin' : '$ids')));
这是解决方案:
$idsAll = array();
foreach ($ids as $k=>$v) {
$idsAll[] = new MongoId($v);
}
db.users.find(array('_id': array('$nin' : $idsAll)));