이를 위해 MongoDB에서 $setIsSubset을 사용합니다. 문서로 컬렉션을 만들자 −
> db.demo407.insertOne( ... { ... Name:"Chris", ... "details" : [ ... { ... id:100 ... }, ... { ... id:110 ... }, ... { ... id:130 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e70dffe15dc524f70227677") }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo407.find().pretty();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5e70dffe15dc524f70227677"), "Name" : "Chris", "details" : [ { "id" : 100 }, { "id" : 110 }, { "id" : 130 } ]
다음은 하위 문서를 쿼리하여 배열을 필터로 사용하는 쿼리입니다 -
> db.demo407.aggregate([ ... {$match: { }}, ... {$project: { ... "details": { ... $filter: { ... input: "$details", ... as: "output", ... cond: { $setIsSubset: [["$$output.id"],[100, 130]] } ... } ... } ... }}])
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5e70dffe15dc524f70227677"), "details" : [ { "id"