MongoDB $Min 연산자

Mongodb Min Yeonsanja



데이터베이스나 프로그래밍의 새로운 사용자가 아니라면 비교 연산자(보다 큼, 작음, 같음 등)를 사용하는 프로그램과 쿼리를 사용해 보았을 것입니다. MongoDB에서는 '$set' 연산자를 사용하여 다음을 수행합니다. 특정 필드 레코드를 업데이트하거나 데이터베이스에 새 레코드를 추가할 때 '$min' 및 '$max'와 같은 비교 연산자를 사용하여 동일한 결과를 얻을 수도 있습니다. MongoDB에서 '$min' 연산자는 새 값이 이미 삽입된 값보다 작을 때 특정 필드를 업데이트하기 위해 많은 함수 쿼리 내에서 활용될 수 있습니다. 또한 컬렉션의 레코드를 특정 순서로 그룹화하여 표시하는 데 활용할 수 있습니다. 이 가이드는 MongoDB에서 '$min' 연산자를 제거하는 다양한 방법을 안내합니다.

예 1:

첫 번째 그림부터 시작하여 MongoDB에서 '$min' 연산자를 사용하여 Windows 시스템에서 MongoDB 셸 도구를 사용하여 이미 삽입된 레코드를 업데이트하는 방법을 보여줍니다. 따라서 데이터베이스에 이미 추가된 일부 레코드가 있어야 합니다. 따라서 insertMany() 함수 쿼리를 사용하여 'test' 데이터베이스의 'order' 컬렉션에 총 5개의 레코드를 추가합니다. 다음 그림에 표시된 삽입된 각 레코드에는 총 4개의 필드(id, title, saleprice 및 tax)가 포함되어 있습니다. 첨부된 출력에 따라 이 5개 레코드 데이터가 성공적으로 삽입되었습니다.

시험 > db.order.insertMany ( [ { 'ID' :01, '제목' : '비누' , '세일가' : 500 , '세' : 24 } ,
... { 'ID' :02, '제목' : '샴푸' , '세일가' : 700 , '세' : 27 } ,
... { 'ID' :03, '제목' : '세정제' , '세일가' : 400 , '세' : 22 } ,
... { 'ID' :04, '제목' : '향수' , '세일가' : 900 , '세' : 30 } ,
... { 'ID' :05, '제목' : '안개' , '세일가' : 850 , '세' : 27 } ] )







'테스트' 데이터베이스에 삽입된 레코드를 볼 시간입니다. 이를 위해서는 'db' 명령에서 'printjson'을 인수로 사용하여 'forEach' 메서드와 함께 'find()' 메서드를 캐스팅해야 합니다. '주문'이라는 컬렉션을 사용하여 화면에 레코드를 표시합니다.



시험 > db.order.find ( ) .각각 ( 프린트 json )



방금 생성된 'order' 컬렉션에서 단일 레코드를 업데이트하기 위해 'updateOne' 함수 쿼리에서 '$min' 연산자를 사용할 적기입니다. 'id' 필드는 데이터베이스에서 특정 레코드를 업데이트하기 위한 고유 식별자로 사용되는 반면 '$min' 연산자는 'SalePrice' 필드에 적용되어 값이 이미 삽입된 값보다 작은 경우 값을 600으로 업데이트합니다. 출력 메시지는 쿼리가 성공했지만 업데이트가 이루어지지 않았음을 보여줍니다.





시험 > db.order.updateOne ( { ID: } , { $분 : { 판매가: 600 } } )

세 번째 레코드의 'SalePrice' 필드에 업데이트가 없는 이유는 '600'보다 작은 '400' 값이 포함되어 있기 때문입니다. 따라서 '$min' 연산자는 첨부된 다음 find() 쿼리에 따라 최소값 '400'을 더 큰 값 '600'으로 업데이트하지 않습니다.



시험 > db.order.find ( ) .각각 ( 프린트 json )

이번에는 다른 출력을 얻기 위해 업데이트 쿼리를 약간 변경해 보겠습니다. '3'의 단일 레코드를 수정하기 위해 'updateOne' 기능을 활용하는 것과 동일한 'db' 명령을 사용합니다. '$min' 연산자는 'SalePrice' 필드에 적용되어 '300'의 값이 이미 삽입된 값보다 작은 경우 해당 값을 '300'으로 설정합니다. SalePrice 필드에 이미 삽입된 '400' 값이 비교할 새 값 '300'보다 크다는 것을 알고 있습니다. 그래서 이번에는 '400'을 '300'으로 바꿉니다. 출력 메시지는 이 쿼리의 성공적인 실행을 보여줍니다. 수정 횟수 = 1은 1개의 레코드가 수정되었음을 의미합니다.

시험 > db.order.updateOne ( { ID: } , { $분 : { 판매가: 300 } } )

MongoDB 셸에서 'find()' 함수 명령을 통해 'test' 데이터베이스의 '주문' 컬렉션 레코드를 JSON 형식으로 표시한 후 세 번째 레코드가 성공적으로 업데이트되었음을 ​​확인했습니다. 'SalePrice' 필드의 400 값이 300 값으로 대체됩니다.

시험 > db.order.find ( ) .각각 ( 프린트 json )

예 2:

이 MongoDB 그림 내에서 레코드의 최소값에 따라 '$min' 연산자와 관련하여 그룹화하여 특정 데이터베이스의 레코드를 가져옵니다. MongoDB의 '테스트' 데이터베이스의 '주문' 컬렉션에 동일한 5개의 레코드가 있고 '테스트' 데이터베이스의 특정 필드에 일부 중복 데이터가 필요하다고 가정합니다. 이를 위해 'test' 데이터베이스의 'order' 컬렉션에 더 많은 레코드를 추가합니다. 이번에는 '제목' 필드에 중복 값을 삽입합니다. 고유한 값의 그룹을 형성하기 위해 '$group' 절에서 사용됩니다. 다음 출력은 'test' 데이터베이스에 대해 새로 삽입된 3개의 추가 레코드를 표시합니다. 이제 '주문' 컬렉션에는 5개의 이전 레코드와 비교하여 '제목' 필드에 대한 중복 값이 ​​있습니다. 나머지는 동일하게 사용합니다.

'test' 데이터베이스의 'order' 컬렉션에 총 8개의 레코드가 있으면 다른 필드로 그룹화된 특정 필드에 적용한 후 MongoDB의 $min 연산자를 테스트할 차례입니다. 첨부된 집계 명령은 이것에 관한 모든 것입니다. 'db' 키워드와 특정 데이터베이스의 컬렉션 이름 및 aggregate() 함수로 시작합니다. 집계 함수는 'Title' 필드가 고유 키로 사용되는 'test' 데이터베이스의 'Title' 필드와 관련된 그룹의 데이터를 표시하기 위해 여기에서 특히 사용되는 MongoDB의 $group 절을 사용하는 것으로 시작합니다. .

동시에 price 필드는 '$min' 연산자가 적용된 총 8개의 동일한 레코드 중 최소값 레코드만 가져오는 별도로 초기화됩니다. 이 쿼리 실행의 출력은 가격 섹션에 약간의 업데이트가 있는 5개의 레코드 표시를 보여줍니다. 반복되는 레코드가 표시되지 않는 것을 확인할 수 있습니다. 일부 고유하고 가장 작은 값 레코드가 여기에 표시됩니다.

시험 > db.order.aggregate ( [ { $그룹 : { _ID: ' $제목 ' , 가격: { $분 : ' $SalePrice ' } } } ] )

결론

이 가이드는 '$min' 연산자를 사용하는 간단한 방법을 보여주는 MongoDB 삽화 모음입니다. 소개 단락은 MongoDB에서 사용 목적을 논의하는 데 사용됩니다. 이 기사의 첫 번째 부분에서는 '$min' 연산자가 작동하는 방식과 데이터베이스의 단일 레코드에 대해 작동하지 않는 방식, 즉 최소값으로 레코드를 업데이트하거나 삽입하는 방법에 대해 설명합니다. 또한 마지막 예제는 컬렉션 레코드를 데이터베이스 전체에서 고유한 것으로 그룹화하는 용도를 보여줍니다.