<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_embedded_campaign(self, id, collection, campaign, confidence, analyst, date, description):
 """ Adds an embedded campaign to the TLO. Args: id: the CRITs object id of the TLO collection: The db collection. See main class documentation. campaign: The campaign to assign. confidence: The campaign confidence analyst: The analyst making the assignment date: The date of the assignment description: A description Returns: The resulting mongo object """

        if type(id) is not ObjectId:
            id = ObjectId(id)
        # TODO: Make sure the object does not already have the campaign
        # Return if it does. Add it if it doesn't
        obj = getattr(self.db, collection)
        result = obj.find({'_id': id, 'campaign.name': campaign})
        if result.count() > 0:
            return
        else:
            log.debug('Adding campaign to set: {}'.format(campaign))
            campaign_obj = {
                'analyst': analyst,
                'confidence': confidence,
                'date': date,
                'description': description,
                'name': campaign
            }
            result = obj.update(
                {'_id': id},
                {'$push': {'campaign': campaign_obj}}
            )
            return result