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

Cập nhật trường MongoDB bằng cách sử dụng giá trị của trường khác?

Bạn có thể sử dụng hàm tổng hợp để cập nhật trường MongoDB bằng cách sử dụng giá trị của trường khác. Ở đây, chúng tôi sẽ tạo hai bộ sưu tập:

  • tên

  • thông tin sinh viên

Bộ sưu tập

Truy vấn để tạo bộ sưu tập đầu tiên với các tài liệu như sau:

> db.name.insert({"FirstName":"John","LastName":"Smith"});
WriteResult({ "nInserted" : 1 })

Bây giờ bạn có thể hiển thị tất cả các tài liệu 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.name.find().pretty();

Sau đây là đầu ra hiển thị các tài liệu "tên" bộ sưu tập:

{
   "_id" : ObjectId("5c6c00dd68174aae23f5ef55"),
   "FirstName" : "John",
   "LastName" : "Smith"
}

Bộ sưu tập

Truy vấn để tạo bộ sưu tập thứ hai với các tài liệu như sau:

> db.studentInformation.insert({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
WriteResult({ "nInserted" : 1 })

Bây giờ bạn có thể hiển thị tất cả các tài liệu 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.studentInformation.find().pretty();

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

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor"
}

Bây giờ, hãy để chúng tôi cập nhật "tên" bộ sưu tập với một bộ sưu tập khác là "studentInformation". Truy vấn như sau:

> db.studentInformation.aggregate( [
   {"$addFields":{"FullName":{"$concat":["$StudentFirstName"," ","$StudentLastName"]} }},
   {"$out":"name"} ] );

Bây giờ bạn có thể kiểm tra các tài liệu của bộ sưu tập "tên". Truy vấn như sau:

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

Sau đây là kết quả hiển thị rằng chúng tôi đã cập nhật thành công các trường:

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor",
   "FullName" : "Carol Taylor"
}