С 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()код>
за заявка по ID на документ:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)