Я пытаюсь выполнить итерацию MongoCursor с помощью цикла foreach, как показано в приведенном ниже коде. Цикл возвращает только первую запись. Может ли кто-нибудь выяснить, в чем проблема?Проблема с итерацией MongoCursor с использованием цикла foreach с php
Вот мой код
$usrcollection = $db->users;
$user = new MongoId($userid);
$where = array('_id' => $user);
$filter = array('courses.coursename' =>true, 'courses.startdate' => true,'courses.duration' => true, 'courses.status' => true,'courses.completed' => true,'courses.institute' => true,'courses.instructor' => true,'courses.coursecreated' => true, '_id' => 0);
$usercursor = $usrcollection->find($where,$filter);
$j = 0;
foreach ($usercursor as $value) {
echo($value['courses'][$j]['coursename']);
$j++;
}
Выход print_r является
Array ([courses] => Array ([0] => Array ([coursename] => Machine learning [startdate] => 2013-12-01 [duration] => 12 Weeks [institute] => Standford University [instructor] => Dr Lafore [status] => Inprogress [completed] => 20 [coursecreated] => MongoDate Object ([sec] => 1386751059 [usec] => 0)) [1] => Array ([coursename] => Fashion Design [startdate] => 2013-12-10 [duration] => 3 Weeks [institute] => MIT [instructor] => Ebay [status] => Inprogress [completed] => 0 [coursecreated] => MongoDate Object ([sec] => 1386753755 [usec] => 0))))
Схема MongoDb ниже
{
"_id": ObjectId("52972705f770dff815000002"),
"badge": "Gold",
"badgecount": NumberInt(3),
"badgedate": ISODate("2013-11-13T05:53:49.0Z"),
"badges": {
"0": {
"badgename": "Silver",
"achievedon": ISODate("2013-10-05T05:53:49.0Z")
},
"1": {
"badgename": "Gold",
"achievedon": ISODate("2013-11-13T05:53:49.0Z")
}
},
"courses": {
"0": {
"coursename": "Machine learning",
"startdate": "2013-12-01",
"duration": "12 Weeks",
"institute": "Standford University",
"instructor": "Dr Lafore ",
"status": "Inprogress",
"completed": "20",
"coursecreated": ISODate("2013-12-11T08:37:39.0Z")
},
"1": {
"coursename": "Fashion Design",
"startdate": "2013-12-10",
"duration": "3 Weeks",
"institute": "MIT",
"instructor": "Ebay",
"status": "Inprogress",
"completed": NumberInt(0),
"coursecreated": ISODate("2013-12-11T09:22:35.0Z")
}
},
"datejoined": ISODate("2013-10-01T05:53:49.0Z"),
"education": {
"0": "Msc Computer science"
}
}
Спасибо! он отлично работает. –
Хорошо, проверьте, как вы ответили, поэтому ppl знает, что он ответил :) – gprusiiski