query := bson.M{ "nombre": bson.M{"$regex": `(?i)` + search}, // me va a buscar los nombres que contengan search}我有这段代码可以在我有名字和姓氏的数据库中进行搜索。我希望此查询对所有名称包含搜索字符串的实例都有效,但我还想按姓氏添加搜索,因为如果名称以外的其他内容出现在搜索中,查询将被错误执行. 我如何实现这样的查询才能按名字和姓氏进行过滤?
2 回答
慕慕森
TA贡献1856条经验 获得超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]},
}
LEATH
TA贡献1936条经验 获得超6个赞
你可以使用正则表达式
query := bson.M{
"nombre": bson.M{"$regex": `\s`+surname+`\b`},
}
\s 匹配任何空白字符
\b 断言结尾
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消