//connects to mongo
$collection = (new MongoDB\Client)->mfrmls->properties;
//takes array with data from array of objects
foreach ($obj as $k => $v){
//prints to make sure on the right record. this works fine
echo "object {$v['ListingId']} \n";
// creates a query to the mongo DB, which works fine, i have checked via var_dump
$cursor = $collection->find(['ListingId' => $v['ListingId']]);
//this for each will never print anything it just seems to be skipped.
//if i take it out of the nested foreach it works fine.
foreach($cursor as $document) {
echo "no no \n";
}
}
я получаю следующие результаты:
object G4849756
object A4202291
object O5548422
object O5548513
object D5921405
в котором явно отсутствует второе эхо цикла for.
просто для справки. «$ cursor» вызывается только после выполнения оператора foreach, я думаю, именно так работает mongoDB - PHP.
var_dump($cursor);
сразу после его настройки, чтобы узнать, что в нем на самом деле. Я также думаю, возможно (я должен подтвердить) вам может потребоваться преобразовать его из obect в array, прежде чем вы сможете используйтеforeach
на нем. Не уверен в этом. - person UncaAlby   schedule 11.03.2018