ventajas que español desventajas caracteristicas mongodb

que - Cómo eliminar el elemento de matriz en mongodb?



mongodb español (2)

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?


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'' } } } );


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.