dsbc80836 2019-05-30 10:29
浏览 111
已采纳

MongoDB切片查询到golang

How can i write this below slice query into golang?

db.con.find({"repoid":1356485},{"contr":{$slice:[0,10]}}).pretty()

Tried with this but not working

DB.C("con").Find(bson.M{"id": ID, "contr": bson.M{"$slice": []interface{}{"$contr", offset, limit}}})

does not find anything. Any ideas?

Thank you in advance

  • 写回答

1条回答 默认 最新

  • douqiao6563 2019-05-30 12:51
    关注

    With Collection.Find() you can only specify the filter. But what you have is a projection:

    {"contr":{$slice:[0,10]}
    

    Projections can be specified using Query.Select(), so this is how you can apply a $slice in projection:

    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
    

    Also note sure if the property you filter by is "id" or is just a typo and it should be "_id". If the latter, you may also use Collection.FindId() to query by document ID:

    err := DB.C("con").FindId(ID).Select(bson.M{
        "contr": bson.M{"$slice": []int{offset, limit}},
    }).All(&results)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办