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

Tăng một giá trị trong một đối tượng lồng nhau MongoDB?

Để tăng một giá trị trong đối tượng lồng nhau, bạn có thể sử dụng toán tử $ inc. Trước tiên, hãy để chúng tôi triển khai truy vấn sau để tạo một bộ sưu tập với các tài liệu

>db.incrementValueDemo.insertOne({"StudentName":"Larry","StudentCountryName":"US","StudentDetails":[{"StudentSubjectName":"Math","StudentMathMarks":79}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c986ca0330fd0aa0d2fe4a2")
}

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

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

{
   "_id" : ObjectId("5c986ca0330fd0aa0d2fe4a2"),
   "StudentName" : "Larry",
   "StudentCountryName" : "US",
   "StudentDetails" : [
      {
         "StudentSubjectName" : "Math",
         "StudentMathMarks" : 79
      }
   ]
}

Sau đây là truy vấn để tăng một giá trị trong đối tượng lồng nhau. Điểm sẽ được tăng dần ở đây

> db.incrementValueDemo.update( {"StudentDetails.StudentSubjectName":"Math"}, { $inc : {
   "StudentDetails.$.StudentMathMarks" : 1 } });
   WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Sau đây là truy vấn để kiểm tra giá trị có được tăng lên hay không

> db.incrementValueDemo.find().pretty();

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

{
   "_id" : ObjectId("5c986ca0330fd0aa0d2fe4a2"),
   "StudentName" : "Larry",
   "StudentCountryName" : "US",
   "StudentDetails" : [
      {
         "StudentSubjectName" : "Math",
         "StudentMathMarks" : 80
      }
   ]
}