Med Collection.Find()
du kan kun angive filteret. Men hvad du har, er en projektion:
{"contr":{$slice:[0,10]}
Projektioner kan specificeres ved hjælp af Query.Select()
, så det er sådan, du kan anvende 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
Bemærk også, om den egenskab, du filtrerer efter, er "id"
eller er bare en tastefejl, og det skal være "_id"
. Hvis sidstnævnte, kan du også bruge Collection.FindId()
for at forespørge efter dokument-id:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)