Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼
/

쿼리 지정

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 정확히 일치
  • 비교 연산자
  • 로직 연산
  • 배열 연산자
  • 요소 연산자
  • 평가 연산자
  • 추가 정보
  • API 문서

이 가이드 에서는 MongoDB PHP 라이브러리를 사용하여 쿼리 를 지정하는 방법을 학습 수 있습니다.

쿼리 필터하다 를 만들어 쿼리 가 반환하는 문서 설정하다 를 구체화할 수 있습니다. 쿼리 필터하다 는 MongoDB 가 읽기 또는 쓰기 (write) 작업에서 문서를 일치시키는 데 사용하는 검색 기준을 지정하는 표현식 입니다. 쿼리 필터하다 에서는 운전자 에 쿼리 와 정확히 일치하는 문서를 검색 하도록 메시지를 표시하거나 보다 복잡한 일치 기준을 Express 하도록 쿼리 필터를 작성할 수 있습니다.

이 가이드 의 예제에서는 과일을 나타내는 문서가 포함된 fruits 컬렉션 에 대한 작업을 실행 합니다. 다음 코드 예시 에서는 데이터베이스 와 컬렉션 을 만든 다음 컬렉션 에 샘플 문서를 삽입하는 방법을 보여 줍니다.

$uri = '<connection string>';
$client = new Client($uri);
$collection = $client->db->fruits;
// Inserts documents representing fruits
$fruits = [
[
'_id' => 1,
'name' => 'apples',
'qty' => 5,
'rating' => 3,
'color' => 'red',
'type' => ['fuji', 'honeycrisp']
],
[
'_id' => 2,
'name' => 'bananas',
'qty' => 7,
'rating' => 4,
'color' => 'yellow',
'type' => ['cavendish']
],
[
'_id' => 3,
'name' => 'oranges',
'qty' => 6,
'rating' => 2,
'type' => ['naval', 'mandarin']
],
[
'_id' => 4,
'name' => 'pineapples',
'qty' => 3,
'rating' => 5,
'color' => 'yellow'
]
];
$result = $collection->insertMany($fruits);

리터럴 값 쿼리는 쿼리 필터하다 와 정확히 일치하는 문서를 반환합니다.

다음 예시 에서는 쿼리 필터하다 를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 color 필드 값이 'yellow' 인 모든 문서를 반환합니다.

$cursor = $collection->find(['color' => 'yellow']);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":2,"name":"bananas","qty":7,"rating":4,"color":"yellow","type":["cavendish"]}
{"_id":4,"name":"pineapples","qty":3,"rating":5,"color":"yellow"}

모든 문서 찾기

컬렉션의 모든 문서를 찾으려면 find() 메서드를 호출하고 빈 쿼리 필터를 전달합니다. 다음 예에서는 컬렉션의 모든 문서를 찾습니다.

$cursor = $collection->find([]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}

비교 연산자는 쿼리 필터하다 에 지정된 값을 기준으로 문서 필드 값을 평가합니다. 다음 목록은 일반적인 비교 연산자를 정의합니다.

  • $gt: 보다 큼

  • $lte: 보다 작거나 같음

  • $ne: 같지 않음

비교 연산자의 전체 목록을 보려면 MongoDB Server 매뉴얼의 비교 쿼리 연산자 가이드를 참조하세요.

다음 예시 에서는 쿼리 필터하다 의 비교 연산자 를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 rating 필드 의 값이 2 보다 큰 모든 문서를 반환합니다.

$cursor = $collection->find(['rating' => ['$gt' => 2]]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":1,"name":"apples","qty":5,"rating":3,"color":"red","type":["fuji","honeycrisp"]}
{"_id":2,"name":"bananas","qty":7,"rating":4,"color":"yellow","type":["cavendish"]}
{"_id":4,"name":"pineapples","qty":3,"rating":5,"color":"yellow"}

논리 연산자는 두 개 이상의 표현식 집합의 결과에 적용된 논리를 사용하여 문서를 일치시킵니다. 다음 목록에서는 각 논리 연산자 에 대해 설명합니다.

  • $and: 모든 절의 조건과 일치하는 모든 문서를 반환합니다.

  • $or: 절의 조건과 일치하는 모든 문서를 반환합니다.

  • $nor: 어떤 절의 조건과도 일치 하지 않는 모든 문서를 반환합니다.

  • $not: 표현식 과 일치 하지 않는 모든 문서를 반환합니다.

논리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 논리 쿼리 연산자 가이드를 참조하세요.

다음 예시 에서는 쿼리 필터하다 의 논리 연산자 를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 qty 필드 값이 5 보다 크 거나 color 필드 값이 'yellow' 인 모든 문서를 반환합니다.

$cursor = $collection->find([
'$or' => [
['qty' => ['$gt' => 5]],
['color' => 'yellow']
]
]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":2,"name":"bananas","qty":7,"rating":4,"color":"yellow","type":["cavendish"]}
{"_id":3,"name":"oranges","qty":6,"rating":2,"type":["naval","mandarin"]}
{"_id":4,"name":"pineapples","qty":3,"rating":5,"color":"yellow"}

배열 연산자는 배열 필드 에 있는 요소의 값 또는 수량을 기준으로 문서를 일치시킵니다. 다음 목록에서는 사용 가능한 배열 연산자에 대해 설명합니다.

  • $all: 쿼리 의 모든 요소를 포함하는 배열이 있는 문서를 반환합니다.

  • $elemMatch: 배열 필드 의 요소가 쿼리 의 모든 조건과 일치하는 경우 문서를 반환합니다.

  • $size: 지정된 크기의 배열이 있는 모든 문서를 반환합니다.

배열 연산자에 대해 자세히 알아보려면 매뉴얼의 배열 쿼리 연산자 가이드를 MongoDB Server 참조하세요.

다음 예시 에서는 쿼리 필터하다 의 배열 연산자 를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 type 배열 필드 에 2 요소가 포함된 모든 문서를 반환합니다.

$cursor = $collection->find(['type' => ['$size' => 2]]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":1,"name":"apples","qty":5,"rating":3,"color":"red","type":["fuji","honeycrisp"]}
{"_id":3,"name":"oranges","qty":6,"rating":2,"type":["naval","mandarin"]}

요소 연산자는 필드의 존재 여부 또는 유형에 따라 데이터를 쿼리합니다.

요소 연산자에 대해 자세히 알아보려면 매뉴얼의 요소 쿼리 연산자 가이드를 MongoDB Server 참조하세요.

다음 예제에서는 쿼리 필터의 요소 연산자를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 color 필드가 있는 모든 문서를 반환합니다.

$cursor = $collection->find(['color' => ['$exists' => true]]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":1,"name":"apples","qty":5,"rating":3,"color":"red","type":["fuji","honeycrisp"]}
{"_id":2,"name":"bananas","qty":7,"rating":4,"color":"yellow","type":["cavendish"]}
{"_id":4,"name":"pineapples","qty":3,"rating":5,"color":"yellow"}

평가 연산자는 개별 필드 또는 전체 컬렉션 문서의 평가를 기반으로 데이터를 반환합니다.

다음 목록에서는 일반적인 평가 연산자에 대해 설명합니다.

  • $text: 문서에서 텍스트 검색 을 수행합니다.

  • $regex: 지정된 정규 표현식 과 일치하는 문서를 반환합니다.

  • $mod: 필드 값에 대해 모듈로 연산을 수행하고 나머지가 지정된 값인 문서를 반환합니다.

평가 연산자의 전체 목록을 보려면 MongoDB Server 매뉴얼의 평가 쿼리 연산자 가이드를 참조하세요.

다음 예시 에서는 쿼리 필터하다 의 평가 연산자 를 MongoDB\Collection::find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 정규 표현식 을 사용하여 name 필드 값에 연속된 'p' 문자가 두 개 이상 있는 모든 문서를 반환합니다.

$cursor = $collection->find(['name' => ['$regex' => 'p{2,}']]);
foreach ($cursor as $doc) {
echo json_encode($doc), PHP_EOL;
}
{"_id":1,"name":"apples","qty":5,"rating":3,"color":"red","type":["fuji","honeycrisp"]}
{"_id":4,"name":"pineapples","qty":3,"rating":5,"color":"yellow"}

문서 쿼리에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 문서 쿼리 가이드를 참조하세요.

MongoDB PHP 라이브러리를 사용한 문서 검색에 학습 보려면 데이터 검색 가이드 를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

반환할 문서 지정