在 MongoDB 查询中搜索 2 个属性

Search on 2 properties in MongoDB query

query := bson.M{
    "nombre": bson.M{"$regex": `(?i)` + search}, // me va a buscar los nombres que contengan search
}

我用这段代码在我的数据库中搜索我的名字和姓氏。我希望此查询对所有名称包含搜索字符串的实例都有效,但我还想按姓氏添加搜索,因为如果名称以外的其他内容出现在搜索中,查询将被错误执行.我如何实现这样的查询才能按名字和姓氏进行过滤?

您可以使用正则表达式

query := bson.M{
        "nombre": bson.M{"$regex": `\s`+surname+`\b`},
    }

\s 匹配任何空白字符

\b 断言结尾

因为我们不知道用户是只传递名字还是传递姓氏的名字

search := "Carlos M"
s := strings.Split(search, " ")
s := append(s, "") // incase name is only supplied then empty string will be used for surname
query := bson.M{
    "nombre": bson.M{"$regex": `(?i)` + s[0]},
    "apellido": bson.M{"$regex": `(?i)` + s[1]},
}