bson.M
è un tipo di mappa, quindi bson.M{ ... }
è un letterale mappa
. Se le coppie chiave-valore vengono scritte in più righe, ciascuna deve terminare con una virgola. Per i dettagli, vedere Come spezzare una lunga riga di codice in Golang?
Inoltre non esiste un letterale "interfaccia", lascia perdere. Un valore di interface{}
type può contenere / avvolgere qualsiasi valore, incluso un bson.M
valore. E l'interface{}
la creazione di valore è automatica, non hai nemmeno bisogno di una conversione
.
Sintassi corretta:
convIter := Session.Copy().DB("").C("convs").Find(bson.M{
"conversationStatus": bson.M{
"$ne": "DESTROYED",
},
}).Iter()
Allo stesso modo, se utilizzi bson.D
tipo (che è una fetta), le righe che non terminano con la parentesi di chiusura del letterale devono terminare con una virgola, ad es.:
d := bson.D{
{Name: "fieldA", Value: 1},
{Name: "fieldB", Value: "running"},
}