U kunt gewoon de Database.CollectionNames()
gebruiken
methode die de collectienamen retourneert die aanwezig zijn in de gegeven db. Het retourneert een segment waarin u moet controleren of uw verzameling wordt vermeld.
sess := ... // obtain session
db := sess.DB("") // Get db, use db name if not given in connection url
names, err := db.CollectionNames()
if err != nil {
// Handle error
log.Printf("Failed to get coll names: %v", err)
return
}
// Simply search in the names slice, e.g.
for _, name := range names {
if name == "collectionToCheck" {
log.Printf("The collection exists!")
break
}
}
Maar zoals Neil Lunn in zijn opmerkingen schreef, zou je dit niet nodig moeten hebben. U moet uw logica wijzigen om MongoDB te gebruiken om niet op deze controle te vertrouwen. Verzamelingen worden automatisch gemaakt als u een document probeert in te voegen, en het opvragen van niet-bestaande verzamelingen levert geen fouten op (en natuurlijk geen resultaat).