$nin 연산자를 $elemMatch 및 $not와 함께 사용하십시오. 개념을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -
> db.combinationOfArrayDemo.insertOne({"StudentName":"Larry","StudentAge":21,"StudentFavouriteTechnicalSubject":["C","Java"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c7f77cc8d10a061296a3c58") } > db.combinationOfArrayDemo.insertOne({"StudentName":"Mike","StudentAge":23,"StudentFavouriteTechnicalSubject":["C++","Java"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c7f77dc8d10a061296a3c59") } > db.combinationOfArrayDemo.insertOne({"StudentName":"David","StudentAge":22,"StudentFavouriteTechnicalSubject":["Java"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c7f77f48d10a061296a3c5a") }
find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -
> db.combinationOfArrayDemo.find().pretty();
다음은 출력입니다 -
{ "_id" : ObjectId("5c7f77cc8d10a061296a3c58"), "StudentName" : "Larry", "StudentAge" : 21, "StudentFavouriteTechnicalSubject" : [ "C", "Java" ] } { "_id" : ObjectId("5c7f77dc8d10a061296a3c59"), "StudentName" : "Mike", "StudentAge" : 23, "StudentFavouriteTechnicalSubject" : [ "C++", "Java" ] } { "_id" : ObjectId("5c7f77f48d10a061296a3c5a"), "StudentName" : "David", "StudentAge" : 22, "StudentFavouriteTechnicalSubject" : [ "Java" ] }
다음은 MongoDB에서 제공된 배열의 조합을 포함하는 배열 필드를 일치시키는 쿼리입니다 -
> db.combinationOfArrayDemo.find({StudentFavouriteTechnicalSubject: {$not: {$elemMatch: {$nin: ['C++', 'Java']}}}}).pretty();
다음은 출력입니다 -
{ "_id" : ObjectId("5c7f77dc8d10a061296a3c59"), "StudentName" : "Mike", "StudentAge" : 23, "StudentFavouriteTechnicalSubject" : [ "C++", "Java" ] } { "_id" : ObjectId("5c7f77f48d10a061296a3c5a"), "StudentName" : "David", "StudentAge" : 22, "StudentFavouriteTechnicalSubject" : [ "Java" ] }