Как найти данные mongodb с неодинаковыми множественными идентификаторами? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть такой сценарий:

У меня есть несколько идентификаторов в массиве, например: [5adcbe766803fa6b048b4599, 5adcbe766803fa6b048b4567]

$ids = [5adcbe766803fa6b048b4599, 5adcbe766803fa6b048b4567] ;

когда я пытаюсь найти с помощью:

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

Я получаю некоторые результаты, которые не верны.

но если я использую другие поля, такие как:

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

Теперь результаты верны.

1 Ответ

0 голосов
/ 27 апреля 2018

Вы не можете передавать идентификаторы таким образом.

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)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...