/** * Returns an array of fields. Fields can be both column fields and * association fields. * * @param \Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo $metadata * * @return array */ private function getFieldsFromMetadata(ClassMetadataInfo $metadata) { $fields = (array) $metadata->getFieldNames(); // Remove the primary key field if it's not managed manually if ($metadata->isIdGeneratorAuto()) { $fields = array_diff($fields, array($metadata->identifier)); } return $fields; }