In Golang ist die Abfrage von MongoDB eine sehr wichtige Aufgabe. mgo ist ein sehr beliebter MongoDB-Treiber, der eine umfangreiche API für CRUD-Operationen bereitstellt. In diesem Artikel wird erläutert, wie Sie mit mgo MongoDB abfragen.
Mgo installieren
Um mgo verwenden zu können, müssen Sie es zunächst installieren. Es kann mit dem Befehl go get installiert werden. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:
go get gopkg.in/mgo.v2
Dadurch wird mgo aus dem Github-Repository heruntergeladen und zum Vendor-Verzeichnis in Ihrem Golang-Projekt hinzugefügt.
MGO-Paket importieren
Wenn Sie MGO in Ihrem Code verwenden, müssen Sie dessen Paket importieren. Sie können den folgenden Code oben in die Datei schreiben, um das MGO-Paket zu importieren und einen Alias dafür zu erstellen.
import (
"gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson"
)
Dokumente in einer Sammlung abfragen
Das Abfragen von MongoDB beginnt mit der Abfrage von Dokumenten in einer Sammlung. Mit der Find()-Methode von mgo.Collection können Sie die Dokumente in der Sammlung abfragen. Hier sind einige grundlegende Abfragebeispiele.
Wenn Sie keine bedingte Filterung hinzufügen möchten, können Sie die Find()-Methode verwenden, um alle Dokumente in der Sammlung zurückzugeben.
func getAllEmployees() ([]Employee, Fehler) {
session := GetSession() defer session.Close() collection := session.DB("company").C("employees") var employees []Employee err := collection.Find(nil).All(&employees) return employees, err
}
Im obigen Code wird die Methode session.DB() verwendet, um eine Datenbank zu öffnen und die Sammlung auszuwählen, die bearbeitet werden muss. Die Find()-Methode gibt einen Cursor zurück, mit dem alle Dokumente abgerufen werden können, die die Kriterien erfüllen. Die All()-Methode liest alle Dokumente in das angegebene Slice ein und gibt einen Fehler zurück.
Sie können die zurückgegebenen Dokumente filtern, indem Sie ein bedingtes Dokument übergeben. Hier ist ein Beispiel für die Abfrage von Mitarbeitern, deren Gehalt mehr als 1000 beträgt:
func getEmployeesWithSalaryGreaterThan1000() ([]Employee, error) {
session := GetSession() defer session.Close() collection := session.DB("company").C("employees") var employees []Employee err := collection.Find(bson.M{"salary": bson.M{"$gt": 1000}}).All(&employees) return employees, err
}
Im obigen Code stellt bson.M das Dokument in MongoDB dar. Das generierte Bedingungsdokument lautet
{
"salary": { "$gt": 1000 }
}
Die oben genannten Bedingungen filtern alle Mitarbeiter mit einem Gehalt von mehr als 1000 $ heraus. Übergeben Sie in der Find()-Methode das bedingte Dokument als Parameter. Der $gt-Operator bedeutet größer als.
Mit der Select()-Methode können Sie die zurückzugebenden Felder angeben. Wie unten gezeigt:
func getEmployeeNameAndAge() ([]Employee, error) {
session := GetSession() defer session.Close() collection := session.DB("company").C("employees") var employees []Employee err := collection.Find(nil).Select(bson.M{"name": 1, "age": 1}).All(&employees) return employees, err
}
Im obigen Code wird die Select()-Methode verwendet, um die zurückzugebenden Felder auszuwählen. In diesem Beispiel werden der Name und das Alter zurückgegeben.
Hinweis: Mindestens ein Feld muss auf 1 gesetzt sein. Wenn alle Felder auf 0 gesetzt sind, gibt die Abfrage ein leeres Dokument zurück.
Verwenden Sie die Methoden Skip() und Limit(), um die Ergebnisse zu paginieren. Wie unten gezeigt:
func getPaginatedEmployees(page int, limit int) ([]Employee, error) {
session := GetSession() defer session.Close() collection := session.DB("company").C("employees") var employees []Employee err := collection.Find(nil).Skip((page - 1) * limit).Limit(limit).All(&employees) return employees, err
}
Im obigen Code wird die Skip()-Methode verwendet, um die angegebene Anzahl von Dokumenten, Limit, zu überspringen ()-Methode gibt die Anzahl der zurückzugebenden Dokumente an.
Zusammenfassung
In diesem Artikel wird erläutert, wie Sie mit mgo MongoDB in Golang abfragen. Fragen Sie die Dokumente in der Sammlung mithilfe der Find()-Methode ab und begrenzen Sie die zurückgegebenen Dokumente durch die Übergabe von Filter- und Paging-Optionen. Verwenden Sie die Select()-Methode, um nur bestimmte Felder zurückzugeben. mgo bietet auch andere Abfragemethoden und -optionen, die bei Bedarf verwendet werden können.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie mgo zum Abfragen von MongoDB in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!