gpt4 book ai didi

go - 基于 mgo 中的正则表达式的搜索未给出所需的结果

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:58 24 4
gpt4 key购买 nike

您好,我的 golang 中有以下代码:

请看:

type User struct {    Id              int      `json:"id" bson:"_id"`    FirstName       string   `json:"first_name" bson:"first_name"`    LastName        string   `json:"last_name" bson:"last_name"`    EmailId         string   `json:"email_id" bson:"email_id"`    Password        string   `json:"password" bson:"password"`    PhoneNumber     string   `json:"phone_number" bson:"phone_number"`    AltPhoneNumber  string   `json:"alt_phone_number" bson:"alt_phone_number"`    Gender          string   `json:"gender" bson:"gender"`    Note            string   `json:"note" bson:"note"`    Address         string   `json:"address" bson:"address"`    AptNo           string   `json:"apt_no" bson:"apt_no"`    City            string   `json:"city" bson:"city"`    Zipcode         string   `json:"zipcode" bson:"zipcode"`}query   := bson.M{  "role"   : "customer",                     "status" : 1,                     "$or": []bson.M{                         bson.M{"first_name":bson.RegEx{".*"+keyword+"*.", "i"} },                        bson.M{"last_name": bson.RegEx{".*"+keyword+"*.", "i"} },                         bson.M{"email_id": bson.RegEx{".*"+keyword, "i"} },                         bson.M{"phone_number": bson.RegEx{".*"+keyword, "i"} },                         bson.M{"alt_phone_number": bson.RegEx{".*"+keyword, "i"} },                 }}err = c.Find(query).All(&result)

我在数据库中有一条记录,名字是“swati”,姓氏是“sharma”。当我搜索“swati”时它会正常工作,当我搜索“sharma”时也是如此它工作正常。

问题是当我搜索“swati sharma”时它没有返回任何结果。谁能告诉我如何实现此输出?

最佳答案

我对我的代码进行了以下更改并且它有效。

    name := strings.Replace(keyword, " ", "|", -1)        conditions := bson.M{ "role" : config.ProviderRole,                                 "status" : status,                                 "$or": []bson.M{                                     bson.M{"first_name":bson.RegEx{"(?i).*"+name+".*", "i"} },                                    bson.M{"last_name": bson.RegEx{ "(?i).*"+name+".*", "i"} },                                     bson.M{"email_id": bson.RegEx{".*"+keyword, "i"} },                                     bson.M{"phone_number": bson.RegEx{".*"+keyword, "i"} },                                     bson.M{"alt_phone_number": bson.RegEx{".*"+keyword, "i"} },                                 }}    err = c.Find(query).All(&result)

关于go - 基于 mgo 中的正则表达式的搜索未给出所需的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46172984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com