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

我想在管道中使用 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},

                     }

                     ...

            }

编译正确,没有找到任何东西。有任何想法吗?


慕勒3428872
浏览 279回答 2
2回答

慕虎7371278

您的 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},    },}

holdtom

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"] = orQueryresult := []interface{}err := mongo.DB.C("collectionName").find(findQuery).All(&result)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go