How to migrate D6 node reference to D7 organic group membership?
I ended up using the advanced method as described in the semi-official documentation (https://drupal.org/node/2023273).  It all came down to modifying the query to get the nid and new group nid. 

class MemberCompanyMembershipMigration extends DrupalMigration {
    /**
     * Construct a migration.
     *
     * @param array $args
     *   Constructor arguments passed at migration-registration time.
     */
    public function __construct($args) {

        parent::__construct($args);


        // Set the fields we want; document in the UI.

        $this-&gt;sourceFields += array(
                'nid' =&gt; t('Group node ID.'),
                'is_active' =&gt; t('User status in the group.'),
                'is_admin' =&gt; t('Group admin or not.'),
                'uid' =&gt; t('User ID.'),
        );
        $this-&gt;sourceOptions['map_joinable'] = FALSE;
        // Set the query as the migration source.
        $this-&gt;source = new MigrateSourceSQL(
                $this-&gt;query(), $this-&gt;sourceFields, NULL, $this-&gt;sourceOptions
        );
        // Map source rows to destination rows with uid+gid.
        $this-&gt;map = new MigrateSQLMap($this-&gt;machineName,
                array(
                        'field_contact_member_company_nid' =&gt; array(
                                'type' =&gt; 'int',
                                'not null' =&gt; TRUE,
                                'description' =&gt; 'ID of the group.',
                        ),
                        'uid' =&gt; array(
                                'type' =&gt; 'int',
                                'not null' =&gt; TRUE,
                                'description' =&gt; 'ID of the user.',
                        ),
                ),
                MigrateDestinationOGMembership::getKeySchema()
        );
        // Destination is group membership.
        $this-&gt;destination = new MigrateDestinationOGMembership();
        // Field mappings.
        $this-&gt;addFieldMapping('group_type')
        -&gt;defaultValue('node');
        $this-&gt;addFieldMapping('entity_type')
        -&gt;defaultValue('user');
        // Let the user migration map the uids.
        $this-&gt;addFieldMapping('etid', 'uid')
        -&gt;sourceMigration('ClickUser');
        $this-&gt;addFieldMapping('state', 'is_active');
        $this-&gt;addFieldMapping('is_admin', 'is_admin');
        // Group migration maps the gid via the OG Node migration.
        $this-&gt;addFieldMapping('gid', 'field_contact_member_company_nid')
        -&gt;sourceMigration('MemberCompany');
        // Minimal source config means we just set a default
        // instead of looking for roles to map.
        $this-&gt;addFieldMapping('group_roles')
        -&gt;defaultValue(array(OG_ADMINISTRATOR_ROLE));
        // Accept defaults for these destination fields.
        $no_input = array(
                'created',
        );
        $this-&gt;addUnmigratedDestinations($no_input, t('Do Not Migrate'));
    }
    /**
     * Query for the source group data.
     *
     * @return QueryConditionInterface
     *   Provides a connection and query for getting OGMembership records.
     */
    protected function query() {
        $query = Database::getConnection('click2', $this-&gt;sourceConnection)
        -&gt;select('content_type_contact_content','p')
        -&gt;fields('p', array('field_contact_member_company_nid'));
        $query-&gt;join('node','n','n.vid = p.vid');
        $query-&gt;addField('n', 'uid');
        $query-&gt;isNotNull('field_contact_member_company_nid');
        return $query;
    }
    public function prepareRow($row) {
        if (parent::prepareRow($row) === FALSE) {
            return FALSE;
        }
    }
}