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

MongoDB에서 정수 배열을 통해 문서를 검색하는 방법은 무엇입니까?

<시간/>

이를 위해 $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 ] }