2014-02-20 2 views
1

objmongodb를 저작물의 mongodb와 통신하는 도구로 사용하고 있습니다.objcMongoDB keypath 술어와 일치하는 nsdate

오늘 픽업 날짜와 동일한 날짜를 필드 pickup.recommended와 함께 사용하여 모든 문서에 대한 쿼리를 만들어야합니다.

I'v를 사용하여 시도 :

[predicate keyPath:@"pickup.recommended" matches:[NSDate date]]; 

뿐만 아니라

[predicate keyPath:@"pickup.recommended" matches:@"2014-02-20"]; 

을하지만 모든 쿼리는 MongoFindRequest에이 추가 술어 제로 결과를 반환합니다. 그리고 그 진술을 추가하기 전에 쿼리가 작동했습니다.

+0

검색 창을 넓혀 보셨습니까? 예 : 어느 날 자정부터 다음 날 자정까지? 또는 모든 시간대의 정오 또는 자정까지 시간을 무시할 수 있으므로 매일 실제로 동일합니까? '[NSDate date]'는 몇 분 또는 몇 초 전에'[NSDate date]'와 같지 않은 현재 시간을 반환합니다. – paulmelnikow

+0

BSON/Mongo에서는 날짜가 밀리 초 단위로 계산됩니다. ObjCMongoDB는'NSDate' 객체를 BSON의 datetime에 직렬화합니다. – paulmelnikow

답변

1

이것을 디버깅하려면 mongod를 -v 플래그와 함께 실행하는 것이 좋습니다. 그러면 모든 쿼리가 로그에 기록되므로 쿼리가 예상 결과를 반환하지 않는 이유를 더 쉽게 알 수 있습니다.