Debe usar la 'notación de puntos' de MongoDB para el elemento incrustado, lo que significa que la "clave" debe ser un tipo de notación de cadena. También aplique $exists
para hacer coincidir dónde está presente la clave en has y el .unset()
método de mongoid:
User.where('_id'=> userId, 'ttokens.919839398393'=> { '$exists' => true }).unset(
'ttokens.919839398393'
)
Este es efectivamente el $unset
operador de MongoDB, que elimina "claves" del documento por la ruta especificada.
Del documento de muestra, esto coincidiría y eliminaría la primera clave, dejando solo la otra.