Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Chuyển một bản ghi có mảng thành nhiều bản ghi trong collection mới MongoDB

Sử dụng $unwind và $out trong Aggregation

$unwind bẻ mảng thành nhiều bản ghi, $out ghi kết quả vào collection mới.

Dữ liệu mẫu

> db.demo757.insertMany([
  { id: 101, Name: ["John", "Bob", "Chris"] },
  { id: 102, Name: ["David"] }
]);

Truy vấn biến đổi và xuất ra collection demo758

db.demo757.aggregate([
  { $unwind: "$Name" },
  { $project: { _id: 0 } },
  { $out: "demo758" }
]);
> db.demo758.find();

Kết quả collection mới

{ "_id": ObjectId("..."), "id": 101, "Name": "John" }
{ "_id": ObjectId("..."), "id": 101, "Name": "Bob" }
{ "_id": ObjectId("..."), "id": 101, "Name": "Chris" }
{ "_id": ObjectId("..."), "id": 102, "Name": "David" }

Mỗi phần tử mảng Name trở thành một bản ghi riêng biệt trong collection demo758.