Как заставить $ not regexp работать в Go?

-4

У меня проблемы с реализацией неполного текста, исключая поиск с помощью golang и mongodb.

Это работает в оболочке монго:

db.collectionName.find({"comment":{"$not": /.*excludeThis.*/}})

Это не работает в Go:

package main

import (
"log"
"regexp"

"github.com/night-codes/mgo-wrapper"
mgo "gopkg.in/mgo.v2"
)

type (

SomeStruct struct {
ID uint64 'form:"id" json:"id" bson:"_id"'
Name string 'form:"name" json:"name" bson:"name"'
Comment string 'form:"comment" json:"comment" bson:"comment"'
}

collectionStruct struct {
collection *mgo.Collection
}

obj map[string]interface{}
arr []interface{}
)

var (
some = collectionStruct{collection: mongo.DB("somedb").C("somecollection")}
)

func main() {
re := regexp.MustCompile(".*" + "exclude" + ".*")
query := obj{"comment": obj{"$not": re}}

result := []SomeStruct{}
if err := some.collection.Find(query).All(&result); err != nil {
log.Println("Error:", err)
return
}

log.Println("Result:")
for k := range result {
log.Printf("%+v\n", result[k])
}
log.Println("-------")
}

Я получаю ошибку:

Ошибка: refle.Value.Interface: невозможно вернуть значение, полученное из неэкспортированного поля или метода

Есть ли способ заставить регулярное выражение работать или реализовать его другим способом?

спросил(а) 2019-02-02T21:41:00+03:00 1 год, 5 месяцев назад
0
77

Ответ: obj{"comment": obj{"$not": bson.RegEx{"$regex", ".*" + "exclude" + ".*"}}} Вместо obj{"comment": obj{"$not": re}}

ответил(а) 2019-02-03T21:43:00+03:00 1 год, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема