bson.M
is een kaarttype, dus de bson.M{ ... }
is een letterlijke kaart
. Als sleutel/waarde-paren in meerdere rijen zijn geschreven, moet elk met een komma eindigen. Voor details, zie Hoe breek je een lange regel code in Golang?
Er is ook geen letterlijke "interface", laat dat vallen. Een waarde van interface{}
type kan elke waarde bevatten / verpakken, inclusief een bson.M
waarde. En de interface{}
waardecreatie is automatisch, je hebt niet eens een type conversie
nodig .
Correcte syntaxis:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
Evenzo, als u de bson.D
gebruikt
type (wat een slice is), moeten regels die niet eindigen met het haakje sluiten van de letterlijke tekst eindigen met een komma, bijvoorbeeld:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}