code: def add_embedded_campaign(self, id, collection, campaign, confidence,
                                analyst, date, description):
          
          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
docs: 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