Skip to content

Commit dc8c322

Browse files
committed
Don't include same id many times in $in fixes doctrine#409
1 parent e714de8 commit dc8c322

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lib/Doctrine/ODM/MongoDB/Persisters/DocumentPersister.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -544,15 +544,16 @@ public function primeCollection(Iterator $collection, $fieldName, $primer, array
544544
if ( ! isset($groupedIds[$className])) {
545545
$groupedIds[$className] = array();
546546
}
547-
$groupedIds[$className][] = $mongoId;
547+
$groupedIds[$className][$id] = $mongoId;
548548
}
549549
}
550550
}
551551
} else if ($fieldMapping['type'] == 'one') {
552552
$document = $collectionMetaData->getFieldValue($element, $fieldName);
553553
if ($document && $document instanceof Proxy && ! $document->__isInitialized__) {
554554
$class = $this->dm->getClassMetadata(get_class($document));
555-
$groupedIds[$class->name][] = $this->uow->getDocumentIdentifier($document);
555+
$id = $this->uow->getDocumentIdentifier($document);
556+
$groupedIds[$class->name][$id] = $id;
556557
}
557558
}
558559
}
@@ -660,7 +661,7 @@ private function loadReferenceManyCollectionOwningSide(PersistentCollection $col
660661
if ( ! isset($groupedIds[$className])) {
661662
$groupedIds[$className] = array();
662663
}
663-
$groupedIds[$className][] = $mongoId;
664+
$groupedIds[$className][$id] = $mongoId;
664665
}
665666
}
666667
foreach ($groupedIds as $className => $ids) {

0 commit comments

Comments
 (0)