bson.M
е тип карта, така че bson.M{ ... }
е картографски литерал
. Ако двойките ключ-стойност са записани на няколко реда, всеки трябва да завършва със запетая. За подробности вижте Как да разбия дълъг ред код в Golang?
Също така няма литерал "интерфейс", зарежете това. Стойност на interface{}
type може да съдържа/обгръща всяка стойност, включително bson.M
стойност. И interface{}
създаването на стойност е автоматично, дори не се нуждаете от преобразуване
.
Правилен синтаксис:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
По същия начин, ако използвате bson.D
тип (който е срез), редовете, които не завършват със затварящата скоба на литерала, трябва да завършват със запетая, напр.:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}