sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB i Go med mgo, operatorer med bson.M / bson.D fick alltid syntaxfel

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"},
}



  1. MongoDB C#-drivrutin, fråga av ett arrayelement med hjälp av regex

  2. Hur räknar man alla unika värden i MONGODB?

  3. MongoDB:Hur inaktiverar man loggning av varningen:ClientCursor::staticYield kan inte låsa upp b/c av rekursivt lås?

  4. Parse.com lägg till JSON Object till JSON Array