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

Bao gồm tất cả các trường hiện có và thêm các trường mới vào tài liệu trong MongoDB?

Bạn có thể đạt được điều này với sự trợ giúp của toán tử $ addFields. Để hiểu khái niệm, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.addFieldDemo.insertOne({"EmployeeId":101,"EmployeeName":"Larry","EmployeeDetails":{
   "EmployeeSalary":65000,"EmployeeCity":"New York","Message":"Hi"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f654d8d10a061296a3c44")
}

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 (). Truy vấn như sau -

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

Sau đây là kết quả -

{
   "_id" : ObjectId("5c7f654d8d10a061296a3c44"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry",
   "EmployeeDetails" : {
      "EmployeeSalary" : 65000,
      "EmployeeCity" : "New York",
      "Message" : "Hi"
   }
}

Đây là truy vấn để bao gồm tất cả các trường hiện có và thêm các trường mới vào tài liệu trong MongoDB -

> db.addFieldDemo.aggregate([ { "$addFields": { "EmployeeBasicSalary":"$EmployeeDetails.EmployeeSalary" } } ]).pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c7f654d8d10a061296a3c44"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry",
   "EmployeeDetails" : {
      "EmployeeSalary" : 65000,
      "EmployeeCity" : "New York",
      "Message" : "Hi"
   },
   "EmployeeBasicSalary" : 65000
}

Nhìn vào đầu ra mẫu, “EmployeeBasicSalary” đã được thêm vào.