MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come verificare se la raccolta esiste o meno MongoDB Golang

Puoi semplicemente utilizzare Database.CollectionNames() metodo che restituisce i nomi delle raccolte presenti nel db dato. Restituisce una fetta in cui devi controllare se la tua collezione è elencata.

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
    }
}

Ma come ha scritto Neil Lunn nei suoi commenti, non dovresti averne bisogno. Dovresti cambiare la tua logica per usare MongoDB per non fare affidamento su questo controllo. Le raccolte vengono create automaticamente se si tenta di inserire un documento e l'esecuzione di query da raccolte inesistenti non produce alcun errore (e ovviamente nessun risultato).