Anda cukup menggunakan Database.CollectionNames()
metode yang mengembalikan nama koleksi yang ada di db yang diberikan. Ini mengembalikan sepotong di mana Anda harus memeriksa apakah koleksi Anda terdaftar.
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
}
}
Tetapi seperti yang ditulis Neil Lunn dalam komentarnya, Anda seharusnya tidak membutuhkan ini. Anda harus mengubah logika Anda untuk menggunakan MongoDB agar tidak bergantung pada pemeriksaan ini. Koleksi dibuat secara otomatis jika Anda mencoba menyisipkan dokumen, dan kueri dari koleksi yang tidak ada tidak akan menghasilkan kesalahan (dan tentu saja tidak ada hasil).