MongoDB 将查询切片到 golang

MongoDB slice query into golang

如何将下面的切片查询写入 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}}})

没有找到任何东西。有什么想法吗?

提前致谢

使用 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)