为了账号安全,请及时绑定邮箱和手机立即绑定

在 MongoDB 查询中搜索 2 个属性

在 MongoDB 查询中搜索 2 个属性

Go
拉风的咖菲猫 2022-11-23 16:21:48

query := bson.M{

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

}

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



查看完整描述

2 回答

?
慕慕森

TA贡献1574条经验 获得超17个赞

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


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]},

}


查看完整回答
反对 回复 5天前
?
LEATH

TA贡献1617条经验 获得超6个赞

你可以使用正则表达式


query := bson.M{

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

    }


\s 匹配任何空白字符


\b 断言结尾


查看完整回答
反对 回复 5天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信