/**
* 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;
}