使用Collection.Find()您只能指定过滤器。但是您拥有的是一个投影:{"contr":{$slice:[0,10]}可以使用 指定投影Query.Select(),因此这就是应用$slice投影的方法:var results []bson.M // Use your own type here, but this works tooerr := 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)