MongoDB 切片查询到 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}}})

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

先感谢您


慕容森
浏览 126回答 1
1回答

泛舟湖上清波郎朗

使用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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go