sql >> Base de Datos >  >> NoSQL >> MongoDB

Eliminando un elemento de la matriz en mongodb

El $pop el operador eliminará el primer o último elemento de la matriz, que puede no ser necesariamente el correcto.

Si desea un elemento específico, puede $pull el elemento con criterios definidos:

   model.registerCompany.findOneAndUpdate({companyKey:"a key"},
    {$pull:{onlineEmployees:"John"}},

Debe asegurarse de que el valor en la matriz sea único, para $pull elimina todos los elementos que coincidan con el nombre 'John'.

Si existen valores idénticos en la matriz, debe usar $unset y $ operador posicional para establecer el valor del elemento de destino en null (desafortunadamente, $unset no eliminará elementos) y luego use $pull para eliminar el elemento con null valor. Para hacer eso, debe asegurarse de que el valor válido no pueda ser null . En ese caso, el código podría ser como:

model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } ) 
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )