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

Làm cách nào để tạo hệ thống hiệu suất đếm các thẻ trên một tập dữ liệu động lớn trong MongoDB?

Tạo một chỉ mục và sau đó sử dụng giải thích (). Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo278.ensureIndex({"Subjects":1});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
> db.demo278.insertOne({"Subjects":["MySQL","MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e49096edd099650a5401a55")
}
> db.demo278.insertOne({"Subjects":["C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e490978dd099650a5401a56")
}
> db.demo278.insertOne({"Subjects":["Spring","Hibernate"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e490984dd099650a5401a57")
}

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.demo278.find();

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

{ "_id" : ObjectId("5e49096edd099650a5401a55"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e490978dd099650a5401a56"), "Subjects" : [ "C", "C++" ] }
{ "_id" : ObjectId("5e490984dd099650a5401a57"), "Subjects" : [ "Spring", "Hibernate" ] }

Đây là truy vấn để kiểm tra hiệu suất -

> db.demo278.find({Subjects:{$in:["Spring","MongoDB"]}}).explain();

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

{
   "queryPlanner" : {
      "plannerVersion" : 1,
      "namespace" : "test.demo278",
      "indexFilterSet" : false,
      "parsedQuery" : {
         "Subjects" : {
            "$in" : [
               "MongoDB",
               "Spring"
            ]
         }
      },
      "winningPlan" : {
         "stage" : "FETCH",
         "inputStage" : {
            "stage" : "IXSCAN",
            "keyPattern" : {
               "Subjects" : 1
            },
            "indexName" : "Subjects_1",
            "isMultiKey" : true,
            "multiKeyPaths" : {
               "Subjects" : [
                  "Subjects"
               ]
            },
            "isUnique" : false,
            "isSparse" : false,
            "isPartial" : false,
            "indexVersion" : 2,
            "direction" : "forward",
            "indexBounds" : {
               "Subjects" : [
                  "[\"MongoDB\", \"MongoDB\"]",
                  "[\"Spring\", \"Spring\"]"
               ]
            }
         }
      },
      "rejectedPlans" : [ ]
   },
   "serverInfo" : {
      "host" : "DESKTOP-QN2RB3H",
      "port" : 27017,
      "version" : "4.0.5",
      "gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412"
   },
   "ok" : 1
}