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

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

ใช้เมธอด map() บน cursor เพื่อแปลงผลลัพธ์เป็นอาร์เรย์ของค่าเฉพาะที่ต้องการ เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> db.listOfSpecificValuesDemo.insertOne({"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc8fef71edecf6a1f6bb") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc94ef71edecf6a1f6bc") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc98ef71edecf6a1f6bd") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc9cef71edecf6a1f6be") }

แสดงเอกสารทั้งหมด:

> db.listOfSpecificValuesDemo.find();

คิวรี่คืนค่าเป็นอาร์เรย์ของชื่อนักเรียนเท่านั้น (ใช้ map):

> db.listOfSpecificValuesDemo.find().map(function(myDocument){ return myDocument.StudentName });
[ "John", "Chris", "Robert", "David" ]

คำอธิบาย: find() คืนค่า cursor ซึ่งมีเมธอด map() ให้ใช้งาน ฟังก์ชัน callback จะถูกเรียกสำหรับแต่ละเอกสาร และค่าที่ return จะถูกรวมเป็นอาร์เรย์ใหม่ วิธีนี้เหมาะสำหรับดึงค่าฟิลด์เดียวจากหลายเอกสาร