Với Collection.Find()
bạn chỉ có thể chỉ định bộ lọc. Nhưng những gì bạn có là một phép chiếu:
{"contr":{$slice:[0,10]}
Các phép chiếu có thể được chỉ định bằng cách sử dụng Query.Select()
, vì vậy đây là cách bạn có thể áp dụng $slice
trong phép chiếu:
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
Cũng lưu ý rằng nếu thuộc tính bạn lọc là "id"
hoặc chỉ là lỗi đánh máy và nó phải là "_id"
. Nếu sau này, bạn cũng có thể sử dụng Collection.FindId()
để truy vấn theo ID tài liệu:
err := DB.C("con").FindId(ID).Select(bson.M{
"contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)