MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Rimuovere i sottocampi dal documento mongoDb

Grazie a tutti coloro che mi hanno aiutato con questa domanda. Ho trovato un problema. Quando ho scritto la domanda, ho usato una versione semplice della query di aggiornamento. Questa è la versione completa

    c($this->table)->update(
        array(
            '_id'  => new MongoId($uid),
            "on.{$strHid}" => array('$exists' => true),
        ),
        array(
            'mts' => time()
            '$unset'    => array(
                "on.{$strHid}" => 1
            )
        )
    ); 

Il mio problema era in questa parte del codice. Qui uso modificatori e non modificatori.

        array(
            'mts' => time()
            '$unset'    => array(
                "on.{$strHid}" => 1
            )
        )

L'ho riscritto così e tutto ok

        array(
            '$set'      => array(
                'mts' => time()
            ),
            '$unset'    => array(
                "on.{$strHid}" => 1
            )
        )