Met Collection.Find()
u kunt alleen het filter specificeren. Maar wat je hebt is een projectie:
{"contr":{$slice:[0,10]}
Projecties kunnen worden gespecificeerd met Query.Select()
, dus zo kun je een $slice
. toepassen in projectie:
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
Let er ook op of de eigenschap waarop u filtert "id"
is of is gewoon een typefout en het moet "_id"
. zijn . Als het laatste het geval is, kunt u ook Collection.FindId()
om te zoeken op document-ID:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)