如何找到不等于多个id的mongodb数据?

I have a scenario like :

I have some ids in array like : [5adcbe766803fa6b048b4599, 5adcbe766803fa6b048b4567]

$ids = [5adcbe766803fa6b048b4599, 5adcbe766803fa6b048b4567] ;

when I try to find with :

db.users.find(array('_id': array('$nin' : '$ids')));

I get some results which are not correct.

but if I use other fields like:

db.users.find(array('name': array('$nin' : 'asghar')));

Now results are correct.

You can not pass ids in this way.

db.users.find(array('_id': array('$nin' : '$ids')));

Here is solution:

$idsAll = array();
foreach ($ids as $k=>$v) {
                $idsAll[] =  new MongoId($v);
            }
db.users.find(array('_id': array('$nin' : $idsAll)));