С Collection.Find()
вы можете указать только фильтр.Но у вас есть проекция:
{"contr":{$slice:[0,10]}
Проекции можно указать с помощью Query.Select()
, поэтому вы можете применить $slice
в проекции:
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
Также обратите внимание, обязательно ли свойство, по которому вы фильтруете, "id"
или это просто опечатка, и оно должно быть "_id"
.Если последнее, вы также можете использовать Collection.FindId()
для запроса по идентификатору документа:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)