Com
Collection.Find()
você só pode especificar o filtro. Mas o que você tem é uma projeção:{"contr":{$slice:[0,10]}
As projeções podem ser especificadas usando
Query.Select()
, então é assim que você pode aplicar um $slice
em projeção: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
Observe também se a propriedade pela qual você filtra é
"id"
ou é apenas um erro de digitação e deve ser "_id"
. Se for o último, você também pode usar Collection.FindId()
para consultar por ID do documento:err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)