2016-11-07 1 views
2

현재 MongoChef (4.3.0)를 사용하여 Azure 문서 DB (using DocumentDB protocol support for MongoDB)에 액세스하고 있습니다. 문제mongochef 하늘빛 문서 db 쿼리 문제

데이터는 연속 수출 내의 데이터의 다음과 같은 유형이 응용 프로그램의 통찰력에서입니다 (다른 데이터가 존재하지만 난에 관심이 중요한 부분입니다 ...)

{ 
    ... other fields ... 
    "request" : [ 
     { 
      "name" : "GET /images/loading_man.gif", 
      "count" : NumberInt(1), 
      "responseCode" : NumberInt(200), 
      "success" : NumberInt(1), 
      "url" : "http://<removed>.cloudapp.azure.com/<something>/images/loading_man.gif" 
      ... other fields ... 
     } 
    ] 
    ... other fields ... 
} 

사용 MongoChef 다음과 같은 몇 가지 기본 쿼리를 문제없이 수행 할 수 있습니다.

{ "request": { $exists: true } } 

하지만 더 복잡한 것도 내가이 데이터를 내보내고 내가 데이터에 같은 검색을 수행 할 사실 수 있어요 내 로컬하여 MongoDB로 가져올 경우 모든

{ "request.0.url": { $exists: true } } 

{ "request.0.url": /.*man.*/i }   

실행 아무것도 돌려주지 않는 여부 보인다 문제없이 문제없이

아이디어를 내보낼 필요없이 문제의 데이터에서 이러한 유형의 검색을 수행 할 수있는 아이디어가 있습니까?

(나는 파이썬 프로그램에서 이상을 원하기 때문에이, 프로그래밍 문제입니다!)

+0

'request.0.url' 대신 배열 인덱스 구문을 사용해보십시오.'request [0] [ "url"]' –

답변

1

글쎄 그것이 내가 할 필요가 모든처럼 보인다 사용 $ elemMatch이었다!

{ "request": { $elemMatch: {url:/.*man.*/i } }} 

이것은 내가 권장하는 방법을 이해하고 있지만 '빠름'입니까?

+0

멋지다! 당신이 일하게되어 기뻐요. 요소가 있지만 Null 인 경우 두 방법 모두이를 포착하여 Null을 저장하지 않도록 100 % 확신해야하거나이를 확인하기 위해 필터에 절을 추가해야합니다. –