added macro for bson attribute fields

Shouldn't this be `self.send("#{name}=", BSON::ObjectId.new) unless read_attribute(name)`?