Go中的MongoDB(golang)和mgo:如何使用逻辑运算符进行查询?
我想在golang中使用管道中的mgo运行以下查询Go中的MongoDB(golang)和mgo:如何使用逻辑运算符进行查询?,mongodb,go,match,logical-operators,mgo,Mongodb,Go,Match,Logical Operators,Mgo,我想在golang中使用管道中的mgo运行以下查询 {"key1" : 1, "$or" : [{"key2" : 2}, {"key3" : 2}]} 我到处找过,但找不到这样的例子。我尝试了许多不同的组合,例如: ... pipeline := []bson.M{ bson.M{ "$match" : bson.M{ "key1" : 1,
{"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 lang Mongo数据库或查询
欢迎你错过了数组/切片,所以关键是[]接口{}我复制粘贴了你的bson.D示例,我得到了“异常:管道阶段规范对象必须只包含一个字段”。@你是在
查找
还是管道
中使用查询?这是一个mongodb错误,但我没有在构建聚合管道方面做过太多的工作,因此我无法立即告诉您如何修复它。Sorry.pipe:=集合.pipe(管道),如果错误:=pipe.All(&res);错误!=无{t.Fatal(error)}
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)