bson.M
jest typem mapy, więc bson.M{ ... }
jest literalem mapy
. Jeśli pary klucz-wartość są zapisane w wielu wierszach, każdy musi kończyć się przecinkiem. Aby uzyskać szczegółowe informacje, zobacz Jak złamać długą linię kodu w Golangu?
Nie ma też literału „interfejsu”, odrzuć to. Wartość interface{}
typ może przechowywać / zawijać dowolną wartość, w tym bson.M
wartość. Oraz interface{}
tworzenie wartości jest automatyczne, nie potrzebujesz nawet typu konwersja
.
Prawidłowa składnia:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
Podobnie, jeśli użyjesz bson.D
typ (czyli plasterek), linie nie kończące się nawiasem zamykającym literału muszą kończyć się przecinkiem, np.:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}