登录
首页 >  Golang >  Go问答

如何在Golang中将 MongoDB 命令转换为 BSON 数据

来源:stackoverflow

时间:2024-03-05 17:09:28 484浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《如何在Golang中将 MongoDB 命令转换为 BSON 数据》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

这是收藏列表

{
    _id : autoincrement
    "p_name" : "name",
    "p_list" : [
        {
            _id : autoincrement
            "p_type" : "hell",
            "p_pool" : "not use"
        }
    ]
}

我在mongodb中使用的时候就用到了这个命令。

db.p.find({},{"p_list": {$elemmatch: {_id:2}}, _id: 0})

同样在golang中,我尝试搜索这样的条件,但没有成功。

collection.Find(context.TODO(), bson.M{bson.M{}, bson.M{"P_LIST":bson.M{"$elemMatch":bson.M{"_id":2}}, bson.M{"_id": 0}}})

golang 如何像 mongodb 一样使用带有条件和过滤器的 find 命令?


解决方案


您调用 find 是错误的,您将过滤器和投影传递到 find 的过滤器参数中。

func (coll *collection) find(ctx context.context, filter interface{},
    opts ...*options.findoptions) (*cursor, error)

尝试这样做:

collection.Find(
    context.TODO(),
    nil,
    options.Find().SetProjection(bson.M{
        "P_LIST": bson.M{
            "$elemMatch": bson.M{"_id": 2},
            "_id":        0,
        },
    })
)

查看有关 的更多详细信息find here

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

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