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