在 MongoDB 查询中搜索 2 个属性

query := bson.M{

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

}

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



拉风的咖菲猫
浏览 83回答 2
2回答

慕慕森

因为我们不知道用户是否只会传递名字或姓氏的名字search := "Carlos M"s := strings.Split(search, " ")s := append(s, "") // incase name is only supplied then empty string will be used for surnamequery := bson.M{    "nombre": bson.M{"$regex": `(?i)` + s[0]},    "apellido": bson.M{"$regex": `(?i)` + s[1]},}

LEATH

你可以使用正则表达式query := bson.M{        "nombre": bson.M{"$regex": `\s`+surname+`\b`},    }\s 匹配任何空白字符\b 断言结尾
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go