我试图在MongoDB中搜索所有格式不同的字符串电话号码。
例如。 (323)704-3234、3237043234、323-704-3234,+ 1-323-704-3234、323.704.3234等。
我可以使用MongoDB提供的运算符或正则表达式来使您找到减去特殊字符的字符串吗?
例如在c#中
collection.Find(Query.Matches("PhoneNumber",(some regex, replace, or where)3237043234))
最佳答案
抱歉,您做错了。
您可以接受任何格式的电话字符串(如果需要),但是在存储它们之前,需要将它们转换为某种特定格式。在您的情况下,最好的办法就是将其转换为数字(存储时要较小,以创建索引)。
然后再有一次,当用户要求输入数字时-他还可以提供任何格式的数字,并且在搜索之前,您会将其转换为数字。 (不要忘了在电话号码字段上添加索引)为了更加方便用户,您可以按用户要求的格式显示输出。
要更改您当前使用的所有电话,只需遍历数据库并更新每个电话号码即可。