2
字符串数组我有,看起来像这样的元件:查询在以MgO
{"Name":"test name","DBType":0,"UserName":"test user","Password":"","Host":"test host","Port":"123","DBName":"test schema","Options":"test options","Groups":["test1"]}
我希望能够查询数据源的cataloug对于那些被分配到特定组。
我对这个代码是:
var d []Source
q := bson.M{"Groups": bson.M{"$in": [1]string{groupName}}}
findErr := c.Find(q).All(&d)
然而 - 我没有得到任何错误,并没有结果。
我也试过
q := bson.M{"Groups": groupName}
具有相同的结果。
//Source describes a data source
type Source struct {
Name string
DBType uint
UserName string
Password string
Host string
Port string
DBName string
Options string
Groups []string
}
我被卡住了 - 我很困惑!任何帮助赞赏。
更新 - 我试着
{"Name":"test name"}
和它返回0项。但是,如果我设定为零,我会得到东西。
那么你实际上并不需要'$ in',这是一个常见的误解,你所做的只是“数组”是“参数”而不是“目标”,而MongoDB并不关心实际数据是否在数组中。检查你实际上是否拥有正确的集合,并且你的'groupName'中的内容实际上就是你的想法。没有返回任何东西的唯一原因是要么你看错了地方,要么寻找错误的东西。查询语法本身很好。 –
我将查询设置为零,并且我获取了源,因此集合是正确的。 – Dan
那么,仍然留下输入,或你的解释。那么当你试图匹配''Name''或''UserName''或基本上任何不是数组的字段时会发生什么?你可能将'groupName'定义为'[] string'而不是'string'。这些都是你的实际问题。 MongoDB或驱动程序没有问题。 –