배열 내부를 쿼리하고 존재 여부를 확인하여 개수를 얻으려면 $exists를 사용하십시오. 문서로 컬렉션을 만들자 −
> db.demo296.insertOne( ... { ... "id":101, ... "Name":"Chris", ... "details":[ ... { ... SubjectId:[101,103], ... "SubjectName":["MySQL","MongoDB"] ... }, ... { ... SubjectId:[102,104], ... "SubjectName":["Java","C"] ... } ... ] ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d51715d93261e4bc9ea3b") } > db.demo296.insertOne( ...{ ... "id":102, ... "Name":"David", ... "details":[ ... { ... SubjectId:[110,113] ... ... }, ... { ... SubjectId:[112,114] ... ... } ... ] ...} ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d519b5d93261e4bc9ea3c") } > db.demo296.insertOne( ... { ... "id":103, ... "Name":"Bob", ... "details":[ ... { ... "SubjectName":["C++","Python"] ... }, ... { ... "SubjectName":["Spring","Hibernate"] ... } ... ] ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d52315d93261e4bc9ea3d") }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo296.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5e4d51715d93261e4bc9ea3b"), "id" : 101, "Name" : "Chris", "details" : [ { "SubjectId" : [ 101, 103 ], "SubjectName" : [ "MySQL", "MongoDB" ] }, { "SubjectId" : [ 102, 104 ], "SubjectName" : [ "Java", "C" ] } ] } { "_id" : ObjectId("5e4d519b5d93261e4bc9ea3c"), "id" : 102, "Name" : "David", "details" : [ { "SubjectId" : [ 110, 113 ] }, { "SubjectId" : [ 112, 114 ] } ] } { "_id" : ObjectId("5e4d52315d93261e4bc9ea3d"), "id" : 103, "Name" : "Bob", "details" : [ { "SubjectName" : [ "C++", "Python" ] }, { "SubjectName" : [ "Spring", "Hibernate" ] } ] }
다음은 배열 내부에서 MongoDB를 쿼리하고 개수를 얻는 방법입니다 -
> db.demo296.count( { 'details.SubjectName': {$exists: true }} );
이것은 다음과 같은 출력을 생성합니다 -
2