Я пытаюсь найти "efg" в поле "abc"
c.Find(bson.M{"$text": bson.M{"abc": "efg"}})
c - объект коллекции. Я не получаю никакого результата. Что я делаю не так?
Я пытаюсь найти "efg" в поле "abc"
c.Find(bson.M{"$text": bson.M{"abc": "efg"}})
c - объект коллекции. Я не получаю никакого результата. Что я делаю не так?
Вы генерируете {$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/
используйте $regex(option i для регистронезависимых)
пример:
c.Find(bson.M{"abc": &bson.RegEx{Pattern: "efg", Options: "i"}})