Computer >> Máy Tính >  >> Lập trình >> MongoDB

Tìm kiếm văn bản trong Mảng đôi lồng nhau của MongoDBs?

Tìm kiếm văn bản trong Mảng lồng nhau kép MongoDBs với sự trợ giúp của ký hiệu dấu chấm (.). Đầu tiên chúng ta hãy tạo một bộ sưu tập. Sau đây là truy vấn để tạo một bộ sưu tập với các tài liệu

> 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")
}

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()

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

Điều này sẽ tạo ra kết quả sau

{
   "_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"
            }
         ]
      }
   ]
}

Sau đây là truy vấn để tìm kiếm trong một mảng lồng nhau kép. Chúng tôi đang tìm bản ghi có văn bản “Java”

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

Điều này sẽ tạo ra kết quả sau

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