고유한 레코드 값 가져오기
일부 필드에서 값이 동일하지 않은 개체를 쿼리할 수 있는 방법이 있습니까?예를 들어 레코드가 있습니다.
{ id : 1, name : "my_name", salary : 1200 }
{ id : 2, name : "my_name", salary : 800 }
{ id : 3, name : "john", salary : 500 }
쿼리: NOT_THE_SAME(이름)으로 모두 찾기
필드에 동일한 값의 레코드를 원하지 않는다고 지정했기 때문에 ID가 1 및 3인 레코드만 원합니다.name
또는 2와 3, 이 상황에서는 중요하지 않습니다.
를 사용하여 고유한 값 배열을 가져올 수 있습니다.
> db.test.distinct("name")
[ "my_name", "john" ]
필터링된 컬렉션과 함께 고유한 문장을 사용할 수도 있습니다.예를 들어 다음 쿼리를 사용하여 800 이상의 급여에서 고유한 이름 값을 얻을 수 있습니다.
db.test.distinct("name", { "salary": { $gt: 800 } })
db.test.aggregate([{$group: {_id: "$name", salary: {$max: "$salary"}}}])
모든 이름을 급여와 함께 나열해야 합니다.
$max
요소당 최고 급여를 반환합니다.선택할 수도 있습니다.$first
등을 참조하십시오. https://docs.mongodb.com/manual/reference/operator/aggregation/group/ #replicator-module을 참조하십시오.
만약 당신이 다양한 분야의 내용에 신경 쓰지 않고 전체 기록을 원한다면, 이것은 (덕분에, 전체를) 유지할 것입니다.$$ROOT
) 각 "이름"에 대해 발견된 첫 번째 문서:
db.coll.aggregate([
{ "$group": {
"_id": "$name",
"doc": { "$first": "$$ROOT" }
}},
{ "$replaceRoot": {
"newRoot": "$doc"
}}
])
$replaceRoot
그것들을 캡슐화하는 대신 문서로 제공할 것입니다.doc
로 필드를 치다._id
.
다양한 필드의 내용이 걱정된다면 문서를 먼저 정렬하는 것이 좋을 것 같습니다.
db.coll.aggregate([
{ "$sort": { "$salary": 1 }},
{ "$group": {
"_id": "$name",
"doc": { "$first": "$$ROOT" }
}},
{ "$replaceRoot": {
"newRoot": "$doc"
}}
])
Mongo DB 버전 > 3.4
db.test.distinct("name")
몽고 DB 버전 < 3.4
db.test.aggregate([{$group: {_id: "$name", salary: {$max: "$salary"}}}])
db.runCommand ( {
distinct: "CollectionName",
key: "key",
query: { "createdDate": {
$gte:new ISODate("2017-04-04T23:59:59Z"),
$lte:new ISODate("2017-04-25T23:59:59Z")}} } )
이 쿼리는 컬렉션에서 데이터를 찾는 데 도움이 되며, 날짜 사이의 조건을 충족하는 모든 문서에서 키 값을 가져옵니다.
언급URL : https://stackoverflow.com/questions/20655506/get-distinct-records-values
'programing' 카테고리의 다른 글
예외 java.lang을 가져오는 중입니다.ClassDefFoundError가 없습니다. com.google.화력 기지새 Firebase로 업데이트한 후의 Firebase 옵션 (0) | 2023.07.04 |
---|---|
ssh 터널 체인(이중 터널, 회사 네트워크의 서버)을 통해 Oracle Database 11g 서버에 연결하려면 어떻게 해야 합니까? (0) | 2023.07.04 |
스프링 보안이 설정된 스프링 부트: 'securityFilterChainRegistration' 이름의 빈을 생성하는 중 오류 발생 (0) | 2023.07.04 |
SQL Server에서 실제 일대일 관계를 만드는 방법 (0) | 2023.07.04 |
.springBeans 파일은 무엇입니까? (0) | 2023.07.04 |