我想在管道中使用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,则可能是这样的:
bson.M
pipeline := bson.M{ "key1": 1, "$or": []interface{}{ bson.M{"key2": 2}, bson.M{"key3": 2}, }, }