Bạn có thể chỉ cần sử dụng Database.CollectionNames()
phương thức trả về tên bộ sưu tập có trong db đã cho. Nó trả về một phần trong đó bạn phải kiểm tra xem bộ sưu tập của mình có được liệt kê hay không.
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
}
}
Nhưng như Neil Lunn đã viết trong nhận xét của mình, bạn không nên cần điều này. Bạn nên thay đổi logic của mình để sử dụng MongoDB không dựa vào kiểm tra này. Các bộ sưu tập được tạo tự động nếu bạn cố gắng chèn một tài liệu và truy vấn từ các bộ sưu tập không tồn tại sẽ không xảy ra lỗi (và tất nhiên là không có kết quả).