我想在管道中使用 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},
}
...
}
正确编译,没有找到任何东西。有什么想法吗?
提前谢谢你
最佳答案
您的 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},
},
}
关于Go (golang) 中的 MongoDB 与 mgo : how to use logical operators to query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932298/