PHP 배열 구문을 사용하여이 MongoDB 쿼리에 문제가 있습니다. 이것은 사용하려는 쿼리의 직접적인 버전입니다.
db.collection.find({
$or: [
{$and : [{X:1}, {X: {$gt: 100}}]},
{$and : [{X:2}, {X: {$lt: 100}}]}
]
});
참고 : 실제 쿼리, 더 복잡하다 이것은 단지 예입니다.
PHP에서 이러한 종류의 쿼리를 설명하는 몇 가지 예제를 찾을 수 없었습니다. 내가 왔어요 가장이되었다 :
$query = array(
'$or' => array(
array(
'$and' => array(
array('X' => 1),
array('X' => array('gt' => 100))
)
),
array(
'$and' => array(
array('X' => 2),
array('X' => array('lt' => 100))
)
),
)
);
$this->db->collection->find($query);
그러나이 쿼리 결과가 반환되지 않습니다. 분명히 우리는 PHP 배열에서 중복 키를 가질 수 없기 때문에 $and
을 배열에서 제거 할 수 없습니다.
속도가 중요하기 때문에 JavaScript 표현식을 사용하고 싶지 않습니다.
업데이트 : 알렉산더 아자 로프 (Alexander Azarov)가 주석에서 지적했듯이, 원래의 쿼리는 다르게 쓰여질 수 있습니다. 제대로 사용 된 $and
쿼리로 질문을 업데이트했습니다.
정확히 작동하지 않는 기능은 무엇입니까? 오류 메시지가 있습니까? –
쿼리가 올바르게 실행되지만 결과는 0입니다. –
샘플 데이터 덤프를 게시 할 수 있습니까? –