我如何將下面的切片查詢寫入 golang?db.con.find({"repoid":1356485},{"contr":{$slice:[0,10]}}).pretty()試過這個但沒有工作DB.C("con").Find(bson.M{"id": ID, "contr": bson.M{"$slice": []interface{}{"$contr", offset, limit}}})沒有找到任何東西。有任何想法嗎?先感謝您
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
使用Collection.Find()
您只能指定過濾器。但是您擁有的是一個投影:
{"contr":{$slice:[0,10]}
可以使用 指定投影Query.Select()
,因此這就是應用$slice
投影的方法:
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
還要注意確保您過濾的屬性是"id"
或只是一個拼寫錯誤,它應該是"_id"
。如果是后者,您還可以使用Collection.FindId()
按文檔 ID 進行查詢:
err := DB.C("con").FindId(ID).Select(bson.M{
? ? "contr": bson.M{"$slice": []int{offset, limit}},
}).All(&results)
- 1 回答
- 0 關注
- 146 瀏覽
添加回答
舉報
0/150
提交
取消