2015-02-01 4 views
0

예를 들어, 강당을 설명하는 문서가 있습니다. 컬렉션의 각 문서에는 적어도 두 개의 필드, roombuilding이 있습니다. 내 UI에는 다음과 같이 표시되는 강당이 있습니다. room - building (room은 하이픈으로 연결되고 building).MongoDB - 필드 조합으로 쿼리

설명 된 형식으로 검색하기 위해 하나의 필드를 사용하여 미리 완성 (자동 완성)을 구현하고 싶습니다. 예를 들어 { "room": "301", "building": "18" }{ "room": "204", "building": "26" }이라는 두 개의 문서가 있다고 가정 해 보겠습니다.

26, -26, 204-2 또는 204-26에 의한 쿼리는 두 번째 문서를 반환해야합니다.

301, 301-, 301-1 또는 301-18 쿼리는 첫 번째 값을 반환해야합니다.

MongoDB에서 어떻게 할 수 있습니까? 필요한 경우 텍스트 색인을 사용하는 데 신경 쓰지 않습니다.

답변

0

각 문서에 room-building 형식의 세 번째 필드를 저장할 수 있습니다. 그런 다음이 필드에 색인을 추가하고 검색하십시오.

0

이 작업은 데이터베이스가 아니라 프런트 엔드에서 수행해야합니다.

가장 좋은 방법은 가능한 모든 room-building 값을 쿼리하고 프런트 엔드의 배열을 키로 매핑하여 _id 값으로 매핑하는 것입니다.

그런 다음 가능한 모든 배열 room-building이 입력 된 jQuery autocomplete widget과 같은 것을 사용하십시오. 사용자가 특정 room-building을 선택하면 배열을 사용하여 _id 문서에 액세스하여 해당 강당에 필요한 데이터를 매우 빠르게 쿼리 할 수 ​​있습니다.

관련 문제