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

Collection.find() ใน MongoDB คืนค่า Field ทั้งหมดเสมอหรือไม่

ควบคุม Field ที่คืนค่าใน find() ด้วย Projection

คำสั่ง find() สามารถระบุ Field ที่ต้องการคืนค่าได้โดยใช้ Projection (พารามิเตอร์ที่ 2)

กรณีที่ 1: คืนค่าเฉพาะ Field ที่ระบุ (ตั้งค่าเป็น 1)

db.yourCollectionName.find({},{ "yourFieldName": 1 }).pretty();

กรณีที่ 2: คืนค่าทุก Field ยกเว้น Field ที่ระบุ (ตั้งค่าเป็น 0)

db.yourCollectionName.find({},{ "yourFieldName": 0 }).pretty();

สร้างข้อมูลตัวอย่าง

> db.returnFieldInFindDemo.insertOne({"StudentName":"John","StudentAge":23,"TechnicalSubject":["MongoDB","MySQL"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ebfe72f684a30fbdfd566") }
> db.returnFieldInFindDemo.insertOne({"StudentName":"Mike","StudentAge":24,"TechnicalSubject":["Java","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ebffd2f684a30fbdfd567") }
> db.returnFieldInFindDemo.insertOne({"StudentName":"Sam","StudentAge":22,"TechnicalSubject":["C","C++"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ec00f2f684a30fbdfd568") }
> db.returnFieldInFindDemo.insertOne({"StudentName":"Carol","StudentAge":20,"TechnicalSubject":["DataStructure","Algorithm"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ec0292f684a30fbdfd569") }

กรณีที่ 1: คืนค่าเฉพาะ TechnicalSubject

> db.returnFieldInFindDemo.find({}, {"TechnicalSubject": 1}).pretty();
{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }

กรณีที่ 2: คืนค่าทุก Field ยกเว้น TechnicalSubject

> db.returnFieldInFindDemo.find({}, {"TechnicalSubject": 0}).pretty();
{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23 }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24 }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22 }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20 }

กรณีที่ 3: ไม่ระบุ Projection (คืนค่าทุก Field)

> db.returnFieldInFindDemo.find();
{ "_id" : ObjectId("5c8ebfe72f684a30fbdfd566"), "StudentName" : "John", "StudentAge" : 23, "TechnicalSubject" : [ "MongoDB", "MySQL" ] }
{ "_id" : ObjectId("5c8ebffd2f684a30fbdfd567"), "StudentName" : "Mike", "StudentAge" : 24, "TechnicalSubject" : [ "Java", "Python" ] }
{ "_id" : ObjectId("5c8ec00f2f684a30fbdfd568"), "StudentName" : "Sam", "StudentAge" : 22, "TechnicalSubject" : [ "C", "C++" ] }
{ "_id" : ObjectId("5c8ec0292f684a30fbdfd569"), "StudentName" : "Carol", "StudentAge" : 20, "TechnicalSubject" : [ "DataStructure", "Algorithm" ] }

หมายเหตุ: _id จะคืนค่ามาอัตโนมัติ ต้องระบุ "_id": 0 ถ้าไม่ต้องการ