Con Collection.Find()
puoi solo specificare il filtro. Ma quello che hai è una proiezione:
{"contr":{$slice:[0,10]}
Le proiezioni possono essere specificate utilizzando Query.Select()
, quindi ecco come puoi applicare una $slice
in proiezione:
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
Assicurati inoltre che la proprietà in base al filtro sia "id"
oppure è solo un errore di battitura e dovrebbe essere "_id"
. In quest'ultimo caso, puoi anche utilizzare Collection.FindId()
per interrogare per ID documento:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)