Můžete jednoduše použít Database.CollectionNames()
metoda, která vrací názvy kolekcí přítomné v dané db. Vrátí řez, ve kterém musíte zkontrolovat, zda je vaše sbírka uvedena.
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
}
}
Ale jak napsal Neil Lunn ve svých komentářích, tohle byste neměli potřebovat. Měli byste změnit svou logiku a používat MongoDB, abyste se na tuto kontrolu nespoléhali. Kolekce se vytvoří automaticky, pokud se pokusíte vložit dokument, a dotazování z neexistujících kolekcí nepřinese žádnou chybu (a samozřejmě žádný výsledek).