我如何将下面的切片查询写入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()只能指定过滤器。但是,您有一个预测:
Collection.Find()
{"contr":{$slice:[0,10]}
可以使用来指定投影Query.Select(),因此这就是您可以应用$slicein投影的方式:
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查询:
"id"
"_id"
Collection.FindId()
err := DB.C("con").FindId(ID).Select(bson.M{ "contr": bson.M{"$slice": []int{offset, limit}}, }).All(&results)