登录
首页 >  Golang >  Go问答

将 MongoDB 查询转换为 mgo Package

来源:stackoverflow

时间:2024-03-08 15:24:39 330浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《将 MongoDB 查询转换为 mgo Package》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我正在尝试在 mongo 中执行一个查询,基本上将...获取与此实例 id 匹配且状态不等于“已删除”或“已拒绝”的所有文档。我想出了如何在 mongodb 查询中执行此操作,但在将其转换为 golang mgo 时遇到问题。

这是 mongodb 查询:

db.getcollection('instance_documents').find( {"$and":[
        { "status": {"$nin":['deleted', "rejected"] }},
        {"_id": “instanceid”}
    ]
})

这是我到目前为止在 golang 中尝试过的,查询无法正常工作,它什么也不返回:

err := appInstanceCollection.Find(bson.M{
        "$and": []bson.M{
                    {"status": bson.M{"$nin": []string{"REJECTED", "DELETED"}}},
                    {"_id": instanceID},
            },
    }).One(&instance)

解决方案


$and 在这里是不必要的。 mongo 要求查询中的所有字段都为 true 才能在结果集中返回文档。尝试将它们全部设置在同一个 bson.m 中:

err := appInstanceCollection.Find(bson.M{
    "status": bson.M{"$nin": []string{"REJECTED", "DELETED"}},
    "_id": instanceID,
  },
}).One(&instance)

至于为什么您提供的 $and mgo 查询不起作用,我不确定。我觉得不错。

到这里,我们也就讲完了《将 MongoDB 查询转换为 mgo Package》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>