ใช้ For Loop วนลูป Key-Value ของเอกสาร
ใน MongoDB Shell สามารถใช้ JavaScript for...in loop เพื่อวนอ่าน Key และ Value ของเอกสารที่ได้จาก findOne()
ตัวอย่างข้อมูล
> db.getAttributeListDemo.insertOne({
"StudentId": 101,
"StudentName": "John",
"StudentAdmissionDate": new ISODate('2019-01-12'),
"StudentSubjects": ["MongoDB", "Java", "MySQL"]
});
โค้ดดึงรายชื่อฟิลด์พร้อมชนิดข้อมูลและค่า
> var myDocument = db.getAttributeListDemo.findOne();
> for (var myKey in myDocument) {
var originalValue = myDocument[myKey];
print(myKey + "(" + typeof(originalValue) + "): " + originalValue);
};
ผลลัพธ์
_id(object): 5cbdfcc9ac184d684e3fa269
StudentId(number): 101
StudentName(string): John
StudentAdmissionDate(object): Sat Jan 12 2019 05:30:00 GMT+0530 (India Standard Time)
StudentSubjects(object): MongoDB,Java,MySQL
วิธีทันสมัยกว่า (MongoDB 4.4+)
// ใช้ $objectToArray ใน Aggregation
db.getAttributeListDemo.aggregate([
{ $project: { fields: { $objectToArray: "$$ROOT" } } },
{ $unwind: "$fields" },
{ $project: { key: "$fields.k", type: { $type: "$fields.v" }, value: "$fields.v" } }
]);
ประโยชน์ของการรู้ Attributes
- Debugging: ตรวจสอบโครงสร้างข้อมูลที่ไม่แน่ใจ
- Dynamic Schema: ระบบที่ Schema ไม่คงที่
- Data Profiling: วิเคราะห์ชนิดข้อมูลในคอลเลกชัน