Cómo eliminar el elemento de matriz en mongodb?

Aquí hay una estructura de matriz

contact: { phone: [ { number: "+1786543589455", place: "New Jersey", createdAt: "" } { number: "+1986543589455", place: "Houston", createdAt: "" } ] } 

Aquí solo conozco el Id. De mongo ( _id ) y el número de teléfono ( +1786543589455 ) y necesito eliminar ese elemento de matriz completo del documento. es decir, el elemento indexado cero en la matriz del teléfono se corresponde con el número de teléfono y necesita eliminar el elemento de matriz correspondiente.

 contact: { phone: [ { number: "+1986543589455", place: "Houston", createdAt: "" } ] } 

Intenté con el siguiente método de actualización

 collection.update( { _id: id, 'contact.phone': '+1786543589455' }, { $unset: { 'contact.phone.$.number': '+1786543589455'} } ); 

Pero elimina el number: +1786543589455 del objeto de la matriz interna, no el elemento indexado de cero en la matriz del teléfono. Intento pull también sin éxito.

¿Cómo eliminar el elemento de matriz en mongodb?

Pruebe la siguiente consulta:

 collection.update( { _id: id }, { $pull: { 'contact.phone': { number: '+1786543589455' } } } ); 

Encontrará el documento con el _id dado y eliminará el teléfono +1786543589455 de su matriz contact.phone .

Puede usar $unset para deshacer el valor de la matriz (establecerlo en null ), pero no para eliminarlo por completo.

Este código a continuación eliminará el elemento de objeto completo de la matriz, donde el número de teléfono es ‘+1786543589455’

 db.collection.update( { _id: id }, { $pull: { 'contact': { number: '+1786543589455' } } } ); 

Simplemente puede usar $ pull para eliminar un subdocumento. El operador $ pull elimina de una matriz existente todas las instancias de un valor o valores que coinciden con una condición especificada.

 Collection.update({ _id: parentDocumentId }, { $pull: { subDocument: { _id: SubDocumentId } } }); 

Esto encontrará su documento principal contra la identificación dada y luego eliminará el elemento de subDocument que coincida con los criterios dados.

Lea más acerca de tirar aquí .