我正在尝试在名为“abc”
的字段中搜索“efg”c.Find(bson.M{"$text": bson.M{"abc": "efg"}})
c是Collection对象。我没有得到任何结果。我做错了什么?
答案 0 :(得分:4)
您正在生成{$text:{abc:"efg"}}
,但您的查询应如下所示:
{$text:{$search:"efg"}}
因此,请尝试将代码更新为:
c.EnsureIndexKey("abc")
c.Find(bson.M{"$text": bson.M{"$search": "efg"}})
请注意,要使用$text
进行搜索,您需要指定索引。查看此文档,说明如何使用它:http://docs.mongodb.org/manual/reference/operator/query/text/
答案 1 :(得分:3)
使用$ regex(选项i用于不区分大小写)
例如:
c.Find(bson.M{"abc": &bson.RegEx{Pattern: "efg", Options: "i"}})