sql >> Database >  >> NoSQL >> MongoDB

Hoe te controleren of verzameling bestaat of niet MongoDB Golang

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).




  1. Vreselijk verslechterde prestaties met andere deelnamevoorwaarden in $lookup (met pijplijn)

  2. Correcte afhandeling van asynchrone Mongo-acties in Node Promise

  3. Django met NoSQL-database

  4. document retourneren met het laatste subdocument alleen in mongodb-aggregaat