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