Gracias a todos los que me ayudaron con esta pregunta. Encontré problema. Cuando escribí la pregunta, usé la versión simple de la consulta de actualización. Esta es la versión completa
c($this->table)->update(
array(
'_id' => new MongoId($uid),
"on.{$strHid}" => array('$exists' => true),
),
array(
'mts' => time()
'$unset' => array(
"on.{$strHid}" => 1
)
)
);
Mi problema estaba en esta parte del código. Aquí uso modificadores y no modificadores.
array(
'mts' => time()
'$unset' => array(
"on.{$strHid}" => 1
)
)
Lo reescribí así y todo bien
array(
'$set' => array(
'mts' => time()
),
'$unset' => array(
"on.{$strHid}" => 1
)
)