Con Collection.Find()
sólo puede especificar el filtro. Pero lo que tienes es una proyección:
{"contr":{$slice:[0,10]}
Las proyecciones se pueden especificar usando Query.Select()
, así es como puedes aplicar un $slice
en proyección:
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
También tenga en cuenta si la propiedad por la que filtra es "id"
o es solo un error tipográfico y debería ser "_id"
. Si es lo último, también puede usar Collection.FindId()
para consultar por ID de documento:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)