Mongodb如何通过regex或在许多字段上搜索



我想搜索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'

也许您可以直接使用$or$regex

filter := 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)

最新更新