Duyệt cursor và mảng lồng nhau với forEach()
Trong MongoDB shell, dùng forEach() trên cursor và mảng để truy xuất giá trị cụ thể, lưu vào đối tượng JavaScript.
Dữ liệu mẫu
> db.demo742.insertOne({
userDetails: [
{ userName: "Robert", CountryName: "UK" },
{ userName: "David", CountryName: "AUS" }
]
});
Script lấy danh sách CountryName duy nhất
var ListOfCountryName = {};
db.demo742.find({}).forEach(function(doc) {
doc.userDetails.forEach(function(d) {
ListOfCountryName[d.CountryName] = d.CountryName;
});
});
printjson(ListOfCountryName);
Kết quả
{ "UK": "UK", "AUS": "AUS" }
Kỹ thuật này hữu ích khi xử lý logic phức tạp trong shell không thể biểu diễn bằng aggregation pipeline.