Z Collection.Find()
możesz tylko określić filtr. Ale masz tylko projekcję:
{"contr":{$slice:[0,10]}
Projekcje można określić za pomocą Query.Select()
, więc w ten sposób możesz zastosować $slice
w projekcji:
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
Pamiętaj również, czy właściwość, według której filtrujesz, to "id"
lub to tylko literówka i powinna to być "_id"
. Jeśli to drugie, możesz również użyć Collection.FindId()
zapytanie według identyfikatora dokumentu:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)