$elemMatch를 사용할 수 있습니다. $elemMatch 연산자는 지정된 모든 쿼리 기준과 일치하는 요소가 하나 이상 있는 배열 필드가 포함된 문서를 찾습니다.
문서로 컬렉션을 만들자 −
> db.demo701.insertOne({"ListOfValues":[100,200,300]}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6e8cf551299a9f98c93b0") } > db.demo701.insertOne({"ListOfValues":[500,700,1000]}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6e8d8551299a9f98c93b1") } > db.demo701.insertOne({"ListOfValues":[300,350,450]}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6e8e1551299a9f98c93b2") }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo701.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5ea6e8cf551299a9f98c93b0"), "ListOfValues" : [ 100, 200, 300 ] } { "_id" : ObjectId("5ea6e8d8551299a9f98c93b1"), "ListOfValues" : [ 500, 700, 1000 ] } { "_id" : ObjectId("5ea6e8e1551299a9f98c93b2"), "ListOfValues" : [ 300, 350, 450 ] }
다음은 특정 값보다 큰 배열 값을 가진 문서를 일치시키는 쿼리입니다 -
> db.demo701.find({"ListOfValues":{$elemMatch:{$gt:500}}});
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5ea6e8d8551299a9f98c93b1"), "ListOfValues" : [ 500, 700, 1000 ] }