MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So überprüfen Sie, ob eine Sammlung vorhanden ist oder nicht MongoDB Golang

Sie können einfach Database.CollectionNames() verwenden Methode, die die in der angegebenen Datenbank vorhandenen Sammlungsnamen zurückgibt. Es gibt ein Slice zurück, in dem Sie überprüfen müssen, ob Ihre Sammlung aufgelistet ist.

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

Aber wie Neil Lunn in seinen Kommentaren schrieb, sollten Sie das nicht brauchen. Sie sollten Ihre Logik ändern, um MongoDB zu verwenden, um sich nicht auf diese Prüfung zu verlassen. Sammlungen werden automatisch erstellt, wenn Sie versuchen, ein Dokument einzufügen, und Abfragen von nicht existierenden Sammlungen ergeben keinen Fehler (und natürlich kein Ergebnis).