猿问

Mongodb 如何通过正则表达式或在许多字段上进行搜索?

我想在 mongodb 的许多领域进行搜索。


这是我到目前为止所做的


var filter bson.D

filter = append(filter, bson.E{"title", primitive.Regex{Pattern: "input", Options: "i"}})

filter = append(filter, bson.E{"author", primitive.Regex{Pattern: "input", Options: "i"}})

filter = append(filter, bson.E{"content", primitive.Regex{Pattern: "input", Options: "i"}})

cur, err := p.postProposalCollection.Find(ctx, filter)

但是它是AND这样工作的


WHERE title ~ 'input' AND author ~ 'input' AND content ~ 'input'

我希望它像这样工作


WHERE title ~ 'input' OR author ~ 'input' OR content ~ 'input'


胡子哥哥
浏览 84回答 1
1回答

UYOU

也许你可以直接使用$orand$regexfilter := bson.M{    "$or": bson.A{        bson.M{"title": bson.M{"$regex": "input"}},        bson.M{"author": bson.M{"$regex": "input"}},        bson.M{"content": bson.M{"$regex": "input"}},    },}p.postProposalCollection.Find(ctx, filter)
随时随地看视频慕课网APP

相关分类

Go
我要回答