2014-10-06 2 views
2

MongoDB에서 다른 형식의 문자열 전화 번호를 검색하려고합니다.MongoDB에서 다양한 전화 번호 형식을 검색하는 방법은 무엇입니까?

예. (323) 704-3234, 3237043234, 3237043234, 323-704-3234, + 1-323-704-3234,323.704.3234 등

MongoDB가 제공하는 연산자 나 정규 표현식을 사용하면 특수 문자를 제외한 문자열을 찾으십니까? C#에서 예를 들어

,

collection.Find(Query.Matches("PhoneNumber",(some regex, replace, or where)3237043234)) 
+1

숫자가 아닌 모든 문자를 제거한 후 Mongo 데이터베이스의 전화 번호 필드를 업데이트하는 것이 더 쉽거나 더 쉬울 것이라고 생각합니다. 그럼 당신은'3237043234' 또는'13237043234'을 찾아야 만합니다. –

+0

넵. 그게 제가 생각한 것입니다. $ replace 연산자가 SQL의 대체처럼 작동 할 수있는 것처럼 보입니다. https://jira.mongodb.org/browse/SERVER-829 – user1364768

답변

0

미안하지만, 당신이 잘못하고있다.

전화 문자열은 원하는 형식으로 허용 할 수 있지만 저장하기 전에 특정 형식으로 변환해야합니다. 귀하의 경우 최고는 숫자로 변환하는 것입니다 (저장을위한 더 작은 크기, 색인 생성).

한 번 더 묻습니다. 사용자가 숫자를 묻는 경우 - 다른 형식으로도 제공 할 수 있으며 검색하기 전에 번호로 변환합니다. (전화 번호 필드에 인덱스를 넣는 것을 잊지 마십시오.)보다 사용자 친화적이기 때문에 사용자가 요청한 것과 동일한 형식으로 출력을 표시 할 수 있습니다.

현재 사용중인 모든 전화기를 변경하려면 데이터베이스를 반복하고 각 번호를 업데이트하십시오.

+0

데이터베이스의 값을 변경하지 않아도되는 솔루션을 찾고있었습니다. 감사. – user1364768

+0

@ user1364768 알았습니다. 그러나 당신에게 알려주는 것 : 당신이 발견 할 수있는 해결책은 귀찮고 느릴 것입니다. –

관련 문제