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

Chuyển mảng thành object (project grouping) trong MongoDB

Trong MongoDB shell, sử dụng JavaScript thuần để biến đổi mảng đối tượng thành object key-value. Tạo mảng dữ liệu:

> var document = [
...   { "SubjectName": "MySQL", "Marks": 78 },
...   { "SubjectName": "MongoDB", "Marks": 89 },
...   { "SubjectName": "Java", "Marks": 71 }
... ];

Hiển thị mảng gốc:

> printjson(document);
[ { "SubjectName" : "MySQL", "Marks" : 78 }, { "SubjectName" : "MongoDB", "Marks" : 89 }, { "SubjectName" : "Java", "Marks" : 71 } ]

Duyệt mảng, xây dựng object: key = SubjectName, value = Marks:

> var makeObject = {};
> document.forEach(function (d){
...   makeObject[d.SubjectName] = d.Marks;
... });
> printjson(makeObject);

Kết quả (object key-value):

{ "MySQL" : 78, "MongoDB" : 89, "Java" : 71 }

Ứng dụng thực tế: Kỹ thuật này thường dùng trong MongoDB shell để biến đổi dữ liệu cho báo cáo, hoặc trong aggregation stage $arrayToObject (MongoDB 3.4.4+): {$arrayToObject: { $map: { input: "$document", as: "d", in: { k: "$$d.SubjectName", v: "$$d.Marks" } } }}.