배열을 사용하여 결과별로 그룹을 검색하려면 집계()를 사용하십시오. $addToSet 연산자도 사용할 것입니다. 값이 이미 존재하지 않는 한 배열에 값을 추가합니다. 이 경우 $addToSet은 해당 배열에 아무 것도 하지 않습니다.
문서로 컬렉션을 만들자 −
> db.demo498.insertOne({id:1,Name:["Chris"]});{
"acknowledged" : true,
"insertedId" : ObjectId("5e86192b987b6e0e9d18f553")
}
> db.demo498.insertOne({id:2,Name:["David"]});{
"acknowledged" : true,
"insertedId" : ObjectId("5e86192d987b6e0e9d18f554")
}
> db.demo498.insertOne({id:3,Name:["Chris"]});{
"acknowledged" : true,
"insertedId" : ObjectId("5e861931987b6e0e9d18f555")
}
> db.demo498.insertOne({id:4,Name:["Bob"]});{
"acknowledged" : true,
"insertedId" : ObjectId("5e861942987b6e0e9d18f556")
}
> db.demo498.insertOne({id:5,Name:["David"]});{
"acknowledged" : true,
"insertedId" : ObjectId("5e861947987b6e0e9d18f557")
} find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo498.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5e86192b987b6e0e9d18f553"), "id" : 1, "Name" : [ "Chris" ] }
{ "_id" : ObjectId("5e86192d987b6e0e9d18f554"), "id" : 2, "Name" : [ "David" ] }
{ "_id" : ObjectId("5e861931987b6e0e9d18f555"), "id" : 3, "Name" : [ "Chris" ] }
{ "_id" : ObjectId("5e861942987b6e0e9d18f556"), "id" : 4, "Name" : [ "Bob" ] }
{ "_id" : ObjectId("5e861947987b6e0e9d18f557"), "id" : 5, "Name" : [ "David" ] } 다음은 MongoDB의 배열을 사용하여 결과별로 그룹을 검색하는 쿼리입니다 -
> db.demo498.aggregate([{
... $unwind : "$Name"
... }, {
... $group : {
... _id : $quot;$Name",
... Id : {
... $addToSet : "$id"
... }
... }
... }
... ]) 이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : "David", "Id" : [ 5, 2 ] }
{ "_id" : "Bob", "Id" : [ 4 ] }
{ "_id" : "Chris", "Id" : [ 3, 1 ] }