Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 필드의 중복 값을 얻으시겠습니까?

<시간/>

필드의 중복 값을 가져오려면 집계() 메서드를 사용합니다. 먼저 다음 쿼리를 사용하여 문서로 컬렉션을 생성해 보겠습니다.

> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":28});{ "승인됨":true, "insertedId":ObjectId("5c995078863d6ffd454bb647")}> db.findAllNonDistinctDemo. insertOne({"UserName":"Larry","UserAge":21});{ "acknowledged":true, "insertedId":ObjectId("5c995081863d6ffd454bb648")}> db.findAllNonDistinctDemo.insertName":"{"User 래리","UserAge":23});{ "승인됨":true, "insertedId":ObjectId("5c995089863d6ffd454bb649")}> db.findAllNonDistinctDemo.insertOne({"UserName":"David","2User });{ "승인됨" :true, "insertedId" :ObjectId("5c995093863d6ffd454bb64a")}> db.findAllNonDistinctDemo.insertOne({"UserName":"John","UserAge":26})";{ "acknowled true, "insertedId":ObjectId("5c99509d863d6ffd454bb64b")}> db.findAllNonDistinctDemo.insertOne({"UserName":"Robert","UserAge":24});{ "승인됨":true, "ObjectIdId" "5c9950a7863d6ffd454bb64c")}> db.findAllNonDistinctDemo.insertOne({"사용자 이름":"로버트","사용자 나이":25} );{ "승인됨" :true, "insertedId" :ObjectId("5c9950b1863d6ffd454bb64d")}> db.findAllNonDistinctDemo.insertOne({"UserName":"마이크","UserAge":29})";{ "acknowled , "insertedId" :ObjectId("5c9950bc863d6ffd454bb64e")}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.findAllNonDistinctDemo.find().pretty();

그러면 다음과 같은 출력이 생성됩니다.

{ "_id":ObjectId("5c995078863d6ffd454bb647"), "UserName":"John", "UserAge":28}{ "_id":ObjectId("5c995081863d6ffd454bb648"), "UserName" 사용자 나이":21}{ "_id":ObjectId("5c995089863d6ffd454bb649"), "사용자 이름":"래리", "사용자 나이":23}{ "_id":ObjectId("5c995093863d6ffd454bb64") ", "사용자 나이":22}{ "_id":ObjectId("5c99509d863d6ffd454bb64b"), "사용자 이름":"존", "사용자 나이":26}{ "_id":ObjectId("5c9950a7863d6ffd":")4bb64 로버트", "사용자 나이":24}{ "_id":ObjectId("5c9950b1863d6ffd454bb64d"), "사용자 이름":"로버트", "사용자 나이":25}{ "_id":ObjectId("5c9950bc863d6ffd454bb" :"마이크", "사용자 연령" :29}

다음은 MongoDB에서 필드의 모든 중복 값을 찾는 쿼리입니다.

> db.findAllNonDistinctDemo.aggregate([... { "$group":{... "_id":"$UserName",... "카운터":{ "$sum":1 }.. . }},... { "$match":{... "카운터":{ "$gt":1 }... }}... ]).pretty();

그러면 다음과 같은 출력이 생성됩니다. 이제 모든 중복 레코드가 표시됩니다.

{ "_id" :"로버트", "카운터" :2 }{ "_id" :"래리", "카운터" :2 }{ "_id" :"존", "카운터" :2 }