这是我的JSON文件:

[{
    "name": "chetan",
    "age": 23,
    "hobby": ["cricket", "football"]
}, {
    "name": "raj",
    "age": 24,
    "hobby": ["cricket", "golf"]
}]

这是我尝试过但未按预期运行的golang代码。
id:= "ket"
c.EnsureIndexKey("hobby")
err = c.Find(bson.M{"$hobby": bson.M{"$search": id,},}).All(&result)

它给出了错误:

最佳答案

$search中,我假设您正在尝试使用文本索引/搜索,但是在您的情况下不起作用。文字索引不支持局部。您仍然可以使用正则表达式来查找那些文档,但是从性能角度考虑,除非您可以利用索引,否则这不是一个明智的选择-在您的情况下不会发生。

不过,您可以通过以下方式实现您想要的:

id := "ket"
regex := bson.M{"$regex": bson.RegEx{Pattern: id}}
err = c.Find(bson.M{"hobby": regex}).All(&result)

关于go - 如何使用mgo在golang中编写mongodb搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37322736/

10-15 20:36