sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB delar upp frågan i golang

Med Collection.Find() du kan bara ange filtret. Men vad du har är en projektion:

{"contr":{$slice:[0,10]}

Projektioner kan specificeras med Query.Select() , så det är så här du kan använda en $slice i projektion:

var results []bson.M // Use your own type here, but this works too

err := DB.C("con").Find(bson.M{"id": ID}).Select(bson.M{
    "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)

// handle error

Observera också att egenskapen du filtrerar efter är "id" eller är bara ett stavfel och det ska vara "_id" . Om den senare kan du också använda Collection.FindId() för att fråga efter dokument-ID:

err := DB.C("con").FindId(ID).Select(bson.M{
    "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)



  1. Hur man skapar och använder Enum i Mongoose

  2. Node.js och Mongoose regex-fråga på flera fält

  3. Hur sorterar man underdokument i matrisfältet?

  4. Är det en bra idé att generera samlingar per dag i mongodb