Overview
En esta guía, puedes aprender cómo remover documentos de tus colecciones de MongoDB usando operaciones de borrar.
Datos de muestra
El ejemplo de esta guía utiliza lo siguiente Book Estructura como modelo para los documentos de la colección books:
type Book struct { Title string Author string Length int32 }
Para ejecutar el ejemplo de esta guía, cargue los datos de muestra en la colección db.books con el siguiente fragmento:
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 longitud de la página correspondiente a los campos title, author y length de cada documento.
Tip
Bases de datos y colecciones inexistentes
Si la base de datos y la colección necesarias no existen cuando realiza una operación de escritura, el servidor las crea implícitamente.
Operaciones de borrar
Utiliza operaciones de borrar para remover datos de MongoDB. Las operaciones de borrado consisten en los siguientes métodos:
DeleteOne(), que elimina el primer documento que coincide con el filtroDeleteMany(), que elimina todos los documentos que coinciden con el filtro
Tip
Si un documento coincide con su filtro al ejecutar el método DeleteMany(), es equivalente a ejecutar el método DeleteOne().
Parámetros
Los métodos DeleteOne() y DeleteMany() esperan que usted pase un tipo Context y un filtro de consulta non-nil que especifique qué documentos coincidirán.
Ambos aceptan opcionalmente el tipo DeleteOptions como tercer parámetro, que representa las opciones que se pueden usar para configurar la operación de eliminación. Si no se especifica un DeleteOptions, el controlador usa los valores predeterminados para cada opción.
El tipo DeleteOptions le permite configurar opciones con los siguientes métodos:
Método | Descripción |
|---|---|
| The index to use to scan for documents to delete. Default: nil |
| The type of language collation to use when sorting results. Default: nil |
Valor de retorno
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.
Ejemplo
El siguiente ejemplo realiza lo siguiente con el método DeleteMany():
Coincide y elimina documentos donde
lengthes mayor que300Indica al método que utilice
_idcomo í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 en el ejemplo anterior se utilizara el método DeleteOne() en lugar de DeleteMany(), el controlador eliminaría el primero de los dos documentos coincidentes.
Información Adicional
Para obtener ejemplos ejecutables de operaciones de eliminación, consulte los siguientes ejemplos de uso:
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,consulte Índices.
Para obtener más información sobre intercalaciones, consulte Intercalaciones.
Documentación de la API
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: