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

MongoDBs Double Nested Array에서 텍스트를 검색하시겠습니까?

<시간/>

점(.) 표기법을 사용하여 MongoDBs Double Nested Array에서 텍스트를 검색합니다. 먼저 컬렉션을 생성해 보겠습니다. 다음은 문서로 컬렉션을 만드는 쿼리입니다.

> db.doubleNestedArrayDemo.insertOne(
...    {
...       "StudentId" : "1000",
...       "StudentName" : "Larry",
...       "StudentDetails" : [
...          {
...             "ProjectName" : "Online Banking",
...             "ProjectDetails" : [
...                {
...                   "TechnologyUsed" : "Java"
...                },
...                {
...                   "TechnologyUsed" : "MySQL in Backend"
...                }
...             ]
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c992bd7330fd0aa0d2fe4cc")
}
> db.doubleNestedArrayDemo.insertOne( { "StudentId" : "1001", "StudentName" : "Robert", "StudentDetails" : [ { "ProjectName" : "Student Web Tracker", "ProjectDetails" : [ { "TechnologyUsed" : "Django Framework" }, { "TechnologyUsed" : "MongoDB in Backend" } ] } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c992cdb330fd0aa0d2fe4cd")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.doubleNestedArrayDemo.find().pretty()

그러면 다음과 같은 출력이 생성됩니다.

{
   "_id" : ObjectId("5c992bd7330fd0aa0d2fe4cc"),
   "StudentId" : "1000",
   "StudentName" : "Larry",
   "StudentDetails" : [
      {
         "ProjectName" : "Online Banking",
         "ProjectDetails" : [
            {
               "TechnologyUsed" : "Java"
            },
            {
               "TechnologyUsed" : "MySQL in Backend"
            }
         ]
      }
   ]
}
{
   "_id" : ObjectId("5c992cdb330fd0aa0d2fe4cd"),
   "StudentId" : "1001",
   "StudentName" : "Robert",
   "StudentDetails" : [
      {
         "ProjectName" : "Student Web Tracker",
         "ProjectDetails" : [
            {
               "TechnologyUsed" : "Django Framework"
            },
            {
               "TechnologyUsed" : "MongoDB in Backend"
            }
         ]
      }
   ]
}

다음은 이중 중첩 배열에서 검색하는 쿼리입니다. "Java"라는 텍스트가 있는 레코드를 찾습니다.

>db.doubleNestedArrayDemo.find({"StudentDetails.ProjectDetails.TechnologyUsed":"Java"}).pretty();

그러면 다음과 같은 출력이 생성됩니다.

{
   "_id" : ObjectId("5c992bd7330fd0aa0d2fe4cc"),
   "StudentId" : "1000",
   "StudentName" : "Larry",
   "StudentDetails" : [
      {
         "ProjectName" : "Online Banking",
         "ProjectDetails" : [
            {
               "TechnologyUsed" : "Java"
            },
            {
               "TechnologyUsed" : "MySQL in Backend"
            }
         ]
      }
   ]
}