Portada del sitio > Sistemas > Administración > Linux > Database > NoSQL > MongoDB > Eliminar campos de una collection.

Eliminar campos de una collection.

Lunes 4 de julio de 2016, por Aitor Roma Vázquez

En este pequeño tip veremos como eliminar campos de una collection.

Para empezar veremos la estructura de datos de nuestra collection. ejecutando los siguientes comandos.

Entramos en la shell de mongo

[root@fr01 language]# mongo
MongoDB shell version: 2.4.14
connecting to: test

Seleccionamos la base de datos

> use millonSpain
switched to db millonSpain

Vemos las collections

> show collections
millonSpain
system.indexes

Printamos un registro para ver los campos

> db.millonSpain.findOne()
{
	"_id" : ObjectId("577a3eade22a21421ec1ca03"),
	"idContacto" : "idContacto",
	"idEmpresa" : "idEmpresa",
	"nombre" : "nombre",
	"apellidos" : "apellidos",
	"tele1" : "tele1",
	"tele2" : "tele2",
	"email" : "email",
	"fechanac" : "fechanac",
	"domicilio" : "domicilio",
	"cp" : "cp",
	"pobla" : "pobla",
	"provi" : "provi",
	"via" : "via;;"
}

Eliminamos el campo idContacto

Para ello usaremos la funcion update() de MongoDB y como nos pide que realicemos una query para poder aplicar el cambio lo que vamos a hacer es decirle que nombre tenga contenido. para ello usaremos la función $exist de esta manera.

db.millonSpain.update(nombre:$exists:true,$unset: idContacto:"" ,multi: true)

He remarcado en rojo los parámetros más importantes el primero, $exists:true dice que el campo nombre debe existir, de esta forma hacemos que se aplique en todos los registros, por otro lado he marcado en negrita el nombre del campo que queremos eliminar con idContacto:"" y la opción más importante para que se aplique a todos los registros multi: true

Miramos que se hayan aplicado los cambios

> db.millonSpain.findOne()
{
	"_id" : ObjectId("577a3eade22a21421ec1ca03"),
	"idEmpresa" : "idEmpresa",
	"nombre" : "nombre",
	"apellidos" : "apellidos",
	"tele1" : "tele1",
	"tele2" : "tele2",
	"email" : "email",
	"fechanac" : "fechanac",
	"domicilio" : "domicilio",
	"cp" : "cp",
	"pobla" : "pobla",
	"provi" : "provi",
	"via" : "via;;"
}

Como se puede ver idContacto ya ha sido eliminado.

Saludos

¿Un mensaje, un comentario?

moderación a priori

Este foro es moderado a priori: su contribución sólo aparecerá una vez validada por un/a administrador/a del sitio.

¿Quién es usted?
Su mensaje

Para crear párrafos, deje simplemente líneas vacías.