Ne, nic takového v současnosti neexistuje. Mnoho lidí již tuto funkci požadovalo a můžete ji sledovat v mongodb Jira . Pokud vidíte, není vyřešen a také není naplánován (což znamená, že v blízké budoucnosti nemáte štěstí).
Jedinou možností je použít aplikační logiku k dosažení tohoto cíle:
- najděte požadovaný prvek, který má userTags jako foo
- iterujte přes userTags a odeberte z něj jednoho foo
- aktualizujte tento prvek novými userTags
Mějte na paměti, že tato operace naruší atomicitu, ale protože Mongo neposkytl nativní metodu, jak to udělat, atomicitu narušíte jakýmkoliv způsobem.
K nové odpovědi jsem přesunul jedno alternativní řešení, protože na tuto otázku neodpovídá, ale představuje jeden z přístupů k refaktorování existujícího schématu. Také se stal tak velkým, že začal být mnohem větší než původní odpověď.