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

คำสั่ง MongoDB แสดงค่าทุกฟิลด์ยกเว้น _id

สำหรับการแสดงเฉพาะฟิลด์ที่ต้องการและยกเว้น _id ให้ใช้ $project ใน Aggregation Pipeline ซึ่งช่วยระบุการรวมฟิลด์ การปิดการแสดง _id การเพิ่มฟิลด์ใหม่ และการรีเซ็ตค่าฟิลด์เดิม

สร้างคอลเลกชันพร้อมเอกสารก่อน:

> db.demo226.insertOne({"Name":"Chris","Age":21}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5e3f9be803d395bdc2134738") } 
> db.demo226.insertOne({"Name":"Bob","Age":20}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5e3f9bf003d395bdc2134739") } 
> db.demo226.insertOne({"Name":"David","Age":22}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5e3f9bf803d395bdc213473a") }

แสดงเอกสารทั้งหมดด้วย find():

> db.demo226.find();

ผลลัพธ์ (มี _id รวมอยู่):

{ "_id" : ObjectId("5e3f9be803d395bdc2134738"), "Name" : "Chris", "Age" : 21 } 
{ "_id" : ObjectId("5e3f9bf003d395bdc2134739"), "Name" : "Bob", "Age" : 20 } 
{ "_id" : ObjectId("5e3f9bf803d395bdc213473a"), "Name" : "David", "Age" : 22 }

คำสั่ง Aggregation เพื่อแสดงค่าทุกฟิลด์ยกเว้น _id และเปลี่ยนชื่อฟิลด์:

> db.demo226.aggregate( 
...     {$project: 
...         { 
...             _id: false, 
...             "StudentFirstName":"$Name", 
...             "StudentAge":"$Age" 
...         } 
...     } 
...);

ผลลัพธ์ที่ได้ - ไม่มี _id และชื่อฟิลด์เปลี่ยนแล้ว:

{ "StudentFirstName" : "Chris", "StudentAge" : 21 } 
{ "StudentFirstName" : "Bob", "StudentAge" : 20 } 
{ "StudentFirstName" : "David", "StudentAge" : 22 }