2013-11-20 5 views
-2

Я пытаюсь получить следующую работу с mongo, используя PHP.

$users = array(26549,42852); 

     $db_mon_con = $mon_con->main; 
     $collection = $db_mon_con->main_a; 


    $cursor = $collection->find(array('userid' => 
            array('$in' => $users) 
           ) 
           ); 

Одним из документов, которые должны быть возвращены выглядит следующим образом:

{ 
"_id" : ObjectId("5284ef9a47ee3f45c73546f8"), 
"id" : "22523", 
"invitations" : [{ 
    "employerid" : "1481", 
    "jobid" : "6272", 
    "createdon" : "2013-09-10 21:31:39", 
    "updatedon" : "2013-09-16 08:59:13", 
    "status" : "rejected", 
    "remarks" : "no activity" 
}], 
"name" : "ss", 
"profilecompletion" : 0, 
"userid" : "26549" 
} 
+0

Вы можете добавить несколько примеров данных/записей, которые вы ожидаете вернуть по этому запросу? –

+1

Это должно сработать. У вас есть ошибка где-то в другом месте. –

+0

Можете ли вы поделиться своей схемой документов? Я надеюсь, что ваш ключ будет таким же, как и для userid, и нет опечатки. – Devesh

ответ

1

Вы сделать есть несоответствие типов: вы передаете в целых числах к вашему запросу, но userid хранится в Монго являются строками ("userid" : "26549" в отличие от "userid" : 26549). Вам нужно преобразовать целые числа в строки, прежде чем запросить их с помощью:

$users = array("26549","42852"); 

В качестве альтернативы, вы можете убедиться, что там, где вы вставив userid, вставить ее как собственное число.

+0

Я отредактировал документ strucuture. Теперь он показывает более простой документ. «userid» не является дочерним элементом профилировщиков. –

+0

Я отредактировал свой ответ - ваша проблема остается несоответствием типа, преобразование 'users' в строки должно исправить это. –