이를 위해 $where 연산자를 사용할 수 있습니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −
>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"John","StudentScores":[45,78,89,90]});{ "승인됨":true, "insertedId":ObjectId("5cd2a219345990ce ")}>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"래리","StudentScores":[45,43,34,33]});{ "승인됨":true, "insertedId":ObjectId("5cd2a228834599 ")}>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"Chris","StudentScores":[]});{ "승인된":true, "insertedId":ObjectId("5cd2a23c345990cee87fd88e") .insertOne({"StudentFirstName":"David","StudentScores":[99]});{ "승인됨":true, "insertedId":ObjectId("5cd2a24d345990cee87fd88f")}
다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -
> db.searchDocumentArrayIntegerDemo.find().pretty();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" :ObjectId("5cd2a219345990cee87fd88c"), "StudentFirstName":"John", "StudentScores":[ 45, 78, 89, 90 ]"}{ "_id":ObjectId("5cd2a908c") StudentFirstName" :"Larry", "StudentScores" :[ 45, 43, 34, 33 ]}{ "_id" :ObjectId("5cd2a23c345990cee87fd88e"), "StudentFirstName" :"Chris", "StudentScores" :[ _id":ObjectId("5cd2a24d345990cee87fd88f"), "StudentFirstName":"David", "StudentScores":[ 99 ]}
사례 1 − 배열에 하나 이상의 값이 포함된 경우 쿼리 −
> db.searchDocumentArrayIntegerDemo.find({ $where:"this.StudentScores.length>=1" } );
이것은 다음과 같은 출력을 생성합니다 -
{ "_id":ObjectId("5cd2a219345990cee87fd88c"), "StudentFirstName":"John", "StudentScores":[ 45, 78, 89, 90 ]" }{ "_id":ObjectId("5cd2a290a StudentFirstName" :"래리", "StudentScores" :[ 45, 43, 34, 33 ] }{ "_id" :ObjectId("5cd2a24d345990cee87fd88f"), "StudentFirstName" :"David", "Student999s"] :[<} /사전>사례 2 − 배열에 모든 문서의 공통 값이 포함된 경우 쿼리 −
> db.searchDocumentArrayIntegerDemo.find({StudentScores:45}, {StudentScores:1});이것은 다음과 같은 출력을 생성합니다 -
{ "_id" :ObjectId("5cd2a219345990cee87fd88c"), "StudentScores" :[ 45, 78, 89, 90 ] }{ "_id" :ObjectId("5cd2a22a345990cee87f", 345990cee87f) 34, 33 ] }