복붙노트

[MONGODB] 별개의 기록 값을 가져옵니다

MONGODB

별개의 기록 값을 가져옵니다

일부 필드에없는 동일한 값을 가진 개체를 쿼리 할 수있는 방법이 있나요? 예를 들어 나는 기록을 가지고 :

{ id : 1, name : "my_name", salary : 1200 }
{ id : 2, name : "my_name", salary : 800 }
{ id : 3, name : "john", salary : 500 }

질의 : NOT_THE_SAME (이름)을 모두 찾을

나는 같은 필드 이름에 값 또는 2와 3에 기록을하지 않도록 지정했기 때문에 난 그냥 ID 1과 3 레코드를 원하는,이 상황에서 중요하지 않습니다.

해결법

  1. ==============================

    1.당신은 고유 값의 배열을 다시 얻기 위해 db.collection.distinct 사용할 수 있습니다 :

    당신은 고유 값의 배열을 다시 얻기 위해 db.collection.distinct 사용할 수 있습니다 :

    > db.test.distinct("name")
    [ "my_name", "john" ]
    
  2. ==============================

    2.또한 필터링 컬렉션 별개의 문장을 사용할 수 있습니다. 예를 들어, 다음 쿼리 (800)를 통해 급여에서 이름의 고유 한 값을 얻을 수 있습니다 :

    또한 필터링 컬렉션 별개의 문장을 사용할 수 있습니다. 예를 들어, 다음 쿼리 (800)를 통해 급여에서 이름의 고유 한 값을 얻을 수 있습니다 :

    db.test.distinct("name", { "salary": { $gt: 800 } })
    
  3. ==============================

    3.

    db.test.aggregate([{$group: {_id: "$name", salary: {$max: "$salary"}}}])
    

    급여 모든 이름을 나열한다.

    최대 반환을 요소마다 가장 높은 급여를 $. 또한 등 처음 $를 선택할 수, https://docs.mongodb.com/manual/reference/operator/aggregation/group/#accumulator-operator를 참조하십시오.

  4. ==============================

    4.

    db.test.distinct("name")
    
    db.test.aggregate([{$group: {_id: "$name", salary: {$max: "$salary"}}}])
    
  5. ==============================

    5.

    db.runCommand ( {
        distinct: "CollectionName", 
        key: "key", 
        query: { "createdDate": { 
            $gte:new ISODate("2017-04-04T23:59:59Z"),
            $lte:new ISODate("2017-04-25T23:59:59Z")}} } )
    

    이 쿼리 컬렉션 찾기 데이터를하는 데 도움이, 날짜 사이의 조건을 만족하는 모든 문서에서 키의 값을 가져옵니다

  6. from https://stackoverflow.com/questions/20655506/get-distinct-records-values by cc-by-sa and MIT license