Obrigado a todos que me ajudaram nesta questão. encontrei problema. Quando escrevi a pergunta, usei a versão simples da consulta de atualização. Esta é a versão completa
c($this->table)->update(
array(
'_id' => new MongoId($uid),
"on.{$strHid}" => array('$exists' => true),
),
array(
'mts' => time()
'$unset' => array(
"on.{$strHid}" => 1
)
)
);
Meu problema estava nesta parte do código. Aqui eu uso modificadores e não modificadores.
array(
'mts' => time()
'$unset' => array(
"on.{$strHid}" => 1
)
)
reescrevi assim e tudo ok
array(
'$set' => array(
'mts' => time()
),
'$unset' => array(
"on.{$strHid}" => 1
)
)