如何将下面的 slice 查询写入 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)
关于arrays - MongoDB slice 查询到golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376454/