특정 날짜 범위에있는 '날짜'속성을 갖는 문서에 대해 mongodb를 쿼리하려고합니다. 이것이 제가하는 방법입니다.날짜 범위와 다른 조건을 사용하는 MongoDB 검색
Q1.
$searchCriteria = array('$and' =>
array(
'date' => array('$gt' => $start, '$lte' => $end),
'lid' => $lid
));
질문 2.
$results = $collection->find($searchCriteria);
아무 것도 반환하지 않지만 각 검색 조건을 별도로 실행하면 작동합니다.
3.
이 작동$searchCriteria = array(
'date' => array('$gt' => $start, '$lte' => $end)
);
, 그것은이 기간이 너무 작동
$searchCriteria = array(
'lid' => $lid
);
일치하는 문서를 반환, 모든 뚜껑의 I 요청한 것과 동일 반환합니다.
하지만 내가하고 싶은 조건이, 그것은 작동하지 않을 때, 여기에 검색 기준 Q1의 위해서 var_dump입니다 :
: 여기array(1) { '$and' => array(2) { 'date' => array(2) { '$gt' => string(10) "2010-11-10" '$lte' => string(10) "2010-11-12" } 'lid' => int(6209) } }
가 동일한 쿼리의 json_encoded 출력은 오류
db.largedaily.find({"$and":{"date":{"$gt":"2010-01-01","$lte":"2010-01-02"},"lid":6209}});
error: { "$err" : "$and expression must be a nonempty array", "code" : 14816 }
무엇 오전에 몽고 쉘 결과에서 쿼리의 JSON 출력을 실행
{"$and":{"date":{"$gt":"2010-11-10","$lte":"2010-11-12"},"lid":6209}}
내가 잘못하고있어? searchCriteria를 잘못 설정하고있는 것 같습니다.
$ 경우 시작 및 $ 엔드 유닉스 타임 스탬프를하고, 그것이 있어야 '$에있다'를 MongoDate ($ start), '$ lte'=> 새로운 MongoDate ($ end) – codepiper