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

MongoDB에서 제공된 배열의 조합을 포함하는 배열 필드를 일치시키시겠습니까?

<시간/>

$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"
   ]
}