protected function referencesMany(string $entity, string $field)
{
$referencedIds = (array) $this->{$field};
if (ObjectIdUtils::isObjectId($referencedIds[0] ?? '')) {
foreach ($referencedIds as $key => $value) {
$referencedIds[$key] = new ObjectID($value);
}
}
$query = ['_id' => ['$in' => array_values($referencedIds)]];
$entityInstance = Ioc::make($entity);
if ($entityInstance instanceof Schema) {
$dataMapper = Ioc::make(DataMapper::class);
$dataMapper->setSchema($entityInstance);
return $dataMapper->where($query, [], true);
}
return $entityInstance::where($query, [], true);
}