bson.M
är en karttyp, så bson.M{ ... }
är en kartbokstav
. Om nyckel-värdepar skrivs i flera rader måste var och en avslutas med ett kommatecken. För detaljer, se Hur bryter man en lång rad med kod i Golang?
Det finns också inget "gränssnitt" bokstavligt, släpp det. Ett värde på interface{}
typ kan hålla / radbryta vilket värde som helst, inklusive en bson.M
värde. Och interface{}
värdeskapande sker automatiskt, du behöver inte ens en typ konvertering
.
Rätt syntax:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
På liknande sätt, om du använder bson.D
typ (som är en skiva), rader som inte slutar med den sista parentesen av bokstaven måste sluta med ett kommatecken, t.ex.:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}