MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongodDB $ puxe apenas um elemento da matriz


Não, não há nada assim no momento. Muitas pessoas já solicitaram o recurso e você pode rastreá-lo no mongodb Jira . Até onde você pode ver, não foi resolvido e também não foi agendado (o que significa que você não terá sorte no futuro próximo).

A única opção é usar a lógica do aplicativo para conseguir isso seria:
  1. encontre o elemento que você deseja e que tenha userTags como foo
  2. itere pelas userTags e remova um foo dela
  3. atualize esse elemento com uma nova userTags

Tenha em mente que esta operação quebra a atomicidade, mas como o Mongo não forneceu um método nativo para fazer isso, você quebrará a atomicidade de qualquer forma.

Movi uma solução alternativa para a nova resposta, porque ela não responde a essa pergunta, mas representa uma das abordagens para refatorar o esquema existente. Também se tornou tão grande, que passou a ser muito maior do que a resposta original.