为了账号安全,请及时绑定邮箱和手机立即绑定

MongoDB in Go (golang) with mgo:如何使用逻辑运算符进行查询?

MongoDB in Go (golang) with mgo:如何使用逻辑运算符进行查询?

Go
慕勒3428872 2021-08-30 15:12:27
我想在管道中使用 mgo 在 golang 中运行以下查询。{"key1" : 1, "$or" : [{"key2" : 2}, {"key3" : 2}]}我到处找,但找不到这样的例子。我尝试了许多不同的组合,例如:...pipeline := []bson.M{                     bson.M{    "$match" :  bson.M{ "key1" : 1,                                                     "$or" : bson.M{ "key2" : 2, "key3" : 2},                     }                     ...            }编译正确,没有找到任何东西。有任何想法吗?
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您的 mongo 查询可以转换为以下内容:


pipeline := bson.D{

    {"key1", 1},

    {"$or", []interface{}{

        bson.D{{"key2", 2}},

        bson.D{{"key3", 2}},

    }},

}

查询应等效于 mongo 控制台中的以下内容:


db.mycollection.find({"key1" : 1, "$or" : [{"key2" : 2}, {"key3" : 2}]})

如果您更愿意使用无序映射bson.M,则如下所示:


pipeline := bson.M{

    "key1": 1,

    "$or": []interface{}{

        bson.M{"key2": 2},

        bson.M{"key3": 2},

    },

}


查看完整回答
反对 回复 2021-08-30
?
holdtom

TA贡献1805条经验 获得超10个赞

go lang Mongo db 或查询


findQuery := bson.M{"key1" : 1}

orQuery := []bson.M{}

orQuery := append(orQuery, bson.M{"key2" : 2}, bson.M{"key3" : 2})


findquery["$or"] = orQuery

result := []interface{}

err := mongo.DB.C("collectionName").find(findQuery).All(&result)


查看完整回答
反对 回复 2021-08-30
  • 2 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信