Saltar al contenido

¿Cómo eliminar un campo por completo de un documento MongoDB?

Solución:

Pruebe esto: si su colección fue ‘ejemplo’

db.example.update({}, {$unset: {words:1}}, false, true);

Refiera esto:

http://www.mongodb.org/display/DOCS/Updating#Updating-%24unset

ACTUALIZAR:

El enlace anterior ya no cubre ‘$ unset’ing. Asegúrate de agregar {multi: true} si desea eliminar este campo de todos los documentos de la colección; de lo contrario, solo lo eliminará del primer documento que encuentre que coincida. Vea esto para obtener documentación actualizada:

https://docs.mongodb.com/manual/reference/operator/update/unset/

Ejemplo:

db.example.update({}, {$unset: {words:1}} , {multi: true});

Al principio, no entendí por qué la pregunta tiene una recompensa (pensé que la pregunta tiene una buena respuesta y no hay nada que agregar), pero luego noté que la respuesta que fue aceptada y votada 15 veces era realmente incorrecta.

Si, tienes que usar $unset operador, pero este desarmado eliminará la clave de palabras que no existe para un documento para una colección. Entonces, básicamente, no hará nada.

Por lo tanto, debe decirle a Mongo que busque en las etiquetas del documento y luego en las palabras usando la notación de puntos. Entonces la consulta correcta es.

db.example.update(
  {},
  { $unset: {'tags.words':1}},
  false, true
)

Solo para completar, me referiré a otra forma de hacerlo, que es mucho peor, pero de esta manera puede cambiar el campo con cualquier código personalizado (incluso basado en otro campo de este documento).

db.example.updateMany({},{"$unset":{"tags.words":1}})

También podemos usar esto para actualizar varios documentos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *