Để chuyển đổi như vậy, hãy sử dụng tổng hợp. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo343.insertOne({ ... _id: 101, ... UserName: "Chris", ... details: [ ... {"Name":"John"}, ... {"Name":"David"} ... ] ... } ... ); { "acknowledged" : true, "insertedId" : 101 }
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.demo343.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : 101, "UserName" : "Chris", "details" : [ { "Name" : "John" }, { "Name" : "David" } ] }
Sau đây là truy vấn để chuyển đổi một mảng đối tượng thành một mảng tài liệu nhúng với một trường chứa giá trị phần tử mảng ban đầu -
> db.demo343.aggregate([ ... { ... $addFields: { ... details: { ... $map: { ... input: "$details", ... in: { Name: "$$this" } ... } ... } ... } ... }, ... { $out: "demo343" } ... ])
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.demo343.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{ "_id" : 101, "UserName" : "Chris", "details" : [ { "Name" : { "Name" : "John" } }, { "Name" : { "Name" : "David" } } ] }