고객이 사용자 지정 데이터를 보낼 수있는 응용 프로그램을 만들고 있는데이 사용자 지정 데이터는 "쿼리 가능"해야합니다. 고객이이 필드를 검색 할 수 있음을 의미합니다. 아래의 사용자에 대한 전송맞춤형 고객 데이터를 쿼리하는 가장 좋은 방법은 무엇입니까?
데이터 :
data = {
name: "Thiago",
id: 2093
country: "Portugal",
custom_data: {
company: "foo",
plan: "pro",
department: "it",
sessions: 203
}
}
인해 응용 프로그램 방식없는 요구에, 우리는 데이터를 유지하기 위해 MongoDB를 사용하고 있습니다.
하지만 이러한 맞춤 데이터를 어떻게 쿼리하는지 궁금합니다. 우리는이 분야에 대한 색인을 가지고 있지 않으며 ~ 1.3M의 많은 문서가 있습니다.
나는 elasticsearch를 사용하여이 요구 사항을 처리 할 수 있다고 생각하지만 사용하지 않으면 좋은 접근법이 있습니까? mongodb 만 사용 하시겠습니까?
한 쿼리의 예는 수 :
포르투갈의 모든 찾기 및 100 개 이상의 로그인을해야합니다. 사전에
감사
임의의 문서와 임의의 쿼리가 있습니까? 그렇다면 모든 문서를 검사해야하므로 쿼리를 수행 할 때마다 쿼리가 느리게 처리됩니다. 메모리에있는 모든 것조차도 불행하게도 색인 없이는 빠르지도 효율적이지 않을 것입니다. – WiredPrairie
@ WiredPrairie right. 내 문서의 색인을 달려면 elasticsearch를 사용합니다. 각 세입자는 ES 내부에 자신의 색인을 갖습니다. 이 접근 방식이 올바른지 궁금합니다. 어떻게 생각하십니까? elasticsearch는이 시나리오에 대한 좋은 접근 방법입니까? – CHAPa
데이터 유형 (> 100)이 필요하고 모든 조합에 대해 색인을 생성 할 수 없다는 점을 감안할 때 (컬렉션 당 최대 64 개의 색인이 있으므로 정기적으로 16 개 이하를 유지하도록 권장 함) MongoDB에서 이것을 모델링하는 논리적 인 방법. 하나는있을 수 있지만 분명하지 않습니다. – WiredPrairie