Avec Collection.Find()
vous ne pouvez spécifier que le filtre. Mais ce que vous avez est une projection :
{"contr":{$slice:[0,10]}
Les projections peuvent être spécifiées à l'aide de Query.Select()
, c'est ainsi que vous pouvez appliquer un $slice
en projection :
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
Notez également que la propriété par laquelle vous filtrez est "id"
ou est juste une faute de frappe et il devrait être "_id"
. Dans ce dernier cas, vous pouvez également utiliser Collection.FindId()
pour interroger par ID de document :
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)