Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

การส่งคืนรายการค่าเฉพาะจากคิวรี่ MongoDB ด้วย map()

ดึงเฉพาะค่าของฟิลด์เป็นอาร์เรย์ด้วย map()

บทความนี้สาธิตวิธีการส่งคืนรายการค่าเฉพาะ (List of specific values) จากผลลัพธ์คิวรี่ MongoDB โดยใช้เมธอด map() บน Cursor

ขั้นตอนที่ 1: สร้าง Collection และเพิ่มข้อมูลตัวอย่าง

สร้าง collection ชื่อ demo195 และเพิ่มเอกสาร 3 รายการ ที่มีฟิลด์ Subject

> db.demo195.insertOne({"Subject":"MySQL"});
{ "acknowledged": true, "insertedId": ObjectId("5e3af3f203d395bdc21346d4") }
> db.demo195.insertOne({"Subject":"MongoDB"});
{ "acknowledged": true, "insertedId": ObjectId("5e3af3f703d395bdc21346d5") }
> db.demo195.insertOne({"Subject":"Java"});
{ "acknowledged": true, "insertedId": ObjectId("5e3af3fa03d395bdc21346d6") }

ขั้นตอนที่ 2: แสดงข้อมูลทั้งหมด

> db.demo195.find();

ผลลัพธ์:

{ "_id": ObjectId("5e3af3f203d395bdc21346d4"), "Subject": "MySQL" }
{ "_id": ObjectId("5e3af3f703d395bdc21346d5"), "Subject": "MongoDB" }
{ "_id": ObjectId("5e3af3fa03d395bdc21346d6"), "Subject": "Java" }

ขั้นตอนที่ 3: ใช้ map() เพื่อดึงเฉพาะค่า Subject

map() จะวนลูปผ่าน Cursor และส่งคืนอาร์เรย์ของค่าที่ฟังก์ชัน callback ส่งคืน

> db.demo195.find().map(function(doc){ return doc.Subject });

ผลลัพธ์ที่ได้

[ "MySQL", "MongoDB", "Java" ]

สรุป: map() เป็นวิธีง่ายและรวดเร็วในการแปลง Cursor ให้เป็นอาร์เรย์ของค่าเฉพาะฟิลด์ที่ต้องการ โดยไม่ต้องดึงเอกสารทั้งหมดมาแล้วค่อยวนลูปฝั่งแอปพลิเคชัน