Удалить подполя из документа mongoDb

У меня есть такие документы

{ "_id": ObjectId("4ffa96436ccc195553000055"), "on": { "4e8614f66ccc19aa490006e3": { "hid": ObjectId("4e8614f66ccc19aa490006e3"), "mts": NumberInt(1352979215) }, "4e8614f06ccc19d9340003e8": { "hid": ObjectId("4e8614f06ccc19d9340003e8"), "mts": NumberInt(1352979216) }, "4e8614346ccc19aa490006df": { "hid": ObjectId("4e8614346ccc19aa490006df"), "mts": NumberInt(1352979218) }, "505af2e66ccc19541d0005a9": { "hid": ObjectId("505af2e66ccc19541d0005a9"), "mts": NumberInt(1352979220) }, "505af2d76ccc19f11300109a": { "hid": ObjectId("505af2d76ccc19f11300109a"), "mts": NumberInt(1352979221) } } } 

Иногда мне нужно удалить подполя из поля «on». Я делаю это так:

  $this->collection->update( array( '_id' => new MongoId('4ffa96436ccc195553000055'), "on.4e8614f66ccc19aa490006e3" => array('$exists' => true), ), array( '$unset' => array( "on.4e8614f66ccc19aa490006e3" => 1 ) ) ); 

Но поле не удаляется. Что я делаю не так?

PS Я проверил ошибки после отправки запроса, и я получил эту ошибку. Модификаторы и немодификаторы не могут быть смешанными Код: 10154

Solutions Collecting From Web of "Удалить подполя из документа mongoDb"

Спасибо всем, кто помог мне с этим вопросом. Я нашел проблему. Когда я писал вопрос, я использовал простую версию запроса на обновление. Это полная версия

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

Моя проблема была в этой части кода. Здесь я использую модификаторы и немодификаторы.

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

Я переписал это так и все в порядке

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