Pomocí Collection.Find()
můžete pouze specifikovat filtr. Ale to, co máte, je projekce:
{"contr":{$slice:[0,10]}
Projekce lze zadat pomocí Query.Select()
, takže takto můžete použít $slice
v projekci:
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
Všimněte si také, zda je vlastnost, podle které filtrujete, "id"
nebo je to jen překlep a mělo by to být "_id"
. Pokud je to druhé, můžete také použít Collection.FindId()
pro dotaz podle ID dokumentu:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)