node_save causing duplicates
If you want to update the content of existing entity than you may use field_attach_update($entity_type, $entity): this saves field data for an existing entity.

Example:

$art = node_load($node-&gt;nid);
$field_language = field_language('node', $art, 'field_intro');
$art-&gt;field_intro[$field_language][0]['value'] = $record-&gt;intro;
field_attach_presave('node', $art);
field_attach_update('node', $art);


Note: field_attach_update() always expects all fields (like we are [passing the complete node object as $art), but If you just pass it the fields you actually want to update it will drop others like image or file fields.