Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Delete Documents

En esta guía, puedes aprender cómo remover documentos de tus colecciones de MongoDB usando operaciones de borrar.

El ejemplo en esta guía utiliza lo siguiente Book struct como modelo para documentos en la colección books:

type Book struct {
Title string
Author string
Length int32
}

Para ejecutar el ejemplo de esta guía, carga los datos de muestra en la colección db.books con el siguiente snippet:

coll := client.Database("db").Collection("books")
docs := []interface{}{
Book{Title: "Atonement", Author: "Ian McEwan", Length: 351},
Book{Title: "My Brilliant Friend", Author: "Elena Ferrante", Length: 331},
Book{Title: "Lucy", Author: "Jamaica Kincaid", Length: 103},
Book{Title: "Outline", Author: "Rachel Cusk", Length: 258},
}
result, err := coll.InsertMany(context.TODO(), docs)

Cada documento contiene una descripción de un libro que incluye el título, el autor y la extensión en páginas que corresponden a los campos title, author y length en cada documento.

Tip

Bases de datos y colecciones inexistentes

Si la base de datos y la colección necesarias no existen cuando realizas una operación de guardar, el servidor las crea implícitamente.

Utiliza operaciones de borrar para remover datos de MongoDB. Las operaciones de borrado consisten en los siguientes métodos:

  • DeleteOne()y que elimina el primer documento que coincide con el filtro

  • DeleteMany()y elimina todos los documentos que correspondan al filtro

Tip

Si un documento coincide con tu filtro al ejecutar el método DeleteMany(), es equivalente a ejecutar el método DeleteOne().

Los métodos DeleteOne() y DeleteMany() esperan que se pase un tipo de Context y un filtro de query de non-nil que especifique qué documentos deben coincidir.

Ambos pueden tomar opcionalmente un tipo DeleteOptions como tercer parámetro, que representa las opciones que se pueden utilizer para configurar la operación de borrado. Si no especificas un DeleteOptions, el driver utiliza los valores por defecto para cada opción.

El tipo DeleteOptions te permite configurar opciones con los siguientes métodos:

Método
Descripción

SetHint()

The index to use to scan for documents to delete.
Default: nil

SetCollation()

The type of language collation to use when sorting results.
Default: nil

Los métodos DeleteOne() y DeleteMany() devuelven un tipo DeleteResult. Este tipo contiene la propiedad DeletedCount, que indica el número de documentos eliminados. Si no hay coincidencias con tu filtro, no se borrará ningún documento y DeletedCount será 0.

El siguiente ejemplo realiza lo siguiente con el método DeleteMany():

  • Empareja y borra documentos donde el length es mayor que 300

  • Indica al método que use el _id como índice

filter := bson.D{{"length", bson.D{{"$gt", 300}}}}
opts := options.Delete().SetHint(bson.D{{"_id", 1}})
result, err := coll.DeleteMany(context.TODO(), filter, opts)
if err != nil {
panic(err)
}
fmt.Printf("Number of documents deleted: %d\n", result.DeletedCount)
Number of documents deleted: 2

Tip

Si el ejemplo anterior hubiera utilizado el método DeleteOne() en lugar de DeleteMany(), el controlador habría eliminado el primero de los dos documentos coincidentes.

Para ejemplos ejecutables de las operaciones de eliminación, consulta los siguientes ejemplos de uso:

  • Borrar un documento

  • Borra varios documentos

Para obtener más información sobre cómo realizar las operaciones mencionadas, consulte las siguientes guías:

Para aprender cómo el driver utiliza Context, consulta Context.

Para obtener más información sobre cómo especificar sugerencias, consulta Índices.

Para aprender más sobre las intercalaciones, consulta Intercalaciones.

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API:

  • deleteOne()

  • deleteMany()

  • DeleteOptions

  • DeleteResult

Volver

Insert

En esta página