Dengan Collection.Find()
Anda hanya dapat menentukan filter. Tapi yang Anda miliki hanyalah proyeksi:
{"contr":{$slice:[0,10]}
Proyeksi dapat ditentukan menggunakan Query.Select()
, jadi beginilah cara menerapkan $slice
dalam proyeksi:
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
Perhatikan juga apakah properti yang Anda filter adalah "id"
atau hanya salah ketik dan seharusnya "_id"
. Jika yang terakhir, Anda juga dapat menggunakan Collection.FindId()
untuk menanyakan berdasarkan ID dokumen:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)