2011-07-06 13 views
0

내가 optionnal의 startDate와 endDate가 속성MongoDB의 날짜 범위 쿼리

와 개체가 내가 좋아하는 내 오브젝트를 조회하고 싶습니다

:

의 startDate가 동일 null 또는 오늘보다 더 큰 AND endDate는 과 같거나 오늘보다 작거나 같습니다.

나는 단지 하나의 일이 있다면, 나는 물론 내가 여기에

{$or : [{startDate : null, endDate : null}, 
     {startDate : {$gte : new Date()}, endDate : null}, 
     {startDate : {$gte : new Date()}, endDate : {$lte : new Date()}}, 
     {startDate : null, endDate : {$lte : new Date()}} 
     ]} 

진짜 문제 같은 복잡한 요청을 만들 수

{$or : [{startDate : null}, {startDate : {$gte : new Date()}}]} 

은 "또는"연산자를 사용합니다 나는 이미 다른 제한을 위해 $ 또는 조건을 사용하고있어서 훨씬 더 복잡합니다.

분명히 매우 간단한 문제를 해결할 수있는 옵션은 무엇입니까?

답변

1

MongoDB 쿼리 레이어에서 직접이 문제를 해결하는 대신 매개 변수 제약 조건을 기반으로 올바른 쿼리를 지정하기 위해 응용 프로그램 코드 내에 일부 논리를 구현하십시오. 이 경우 MongoDB의 쿼리 언어는 부분적으로 너무 약합니다.

+0

답장을위한 Thx. 다른 단서가 없다면 며칠 후에 받아 들일거야, 네가 맞다고 생각해. –