Để ngăn MongoDB trả lại ID đối tượng trong khi tìm tài liệu, bạn cần đặt _idto 0. Trước tiên, chúng ta hãy tạo một bộ sưu tập với các tài liệu
> db.preventObjectIdDemo.insertOne( ... { ... ... "StudentName" : "Chris", ... "StudentDetails" : [ ... { ... "StudentTotalScore" : 540, ... "StudentCountryName" : "US" ... }, ... { ... "StudentTotalScore" : 489, ... "StudentCountryName" : "UK" ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5ca20a9c66324ffac2a7dc63") }
Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()
> db.preventObjectIdDemo.find().pretty();
Điều này sẽ tạo ra kết quả sau
{ "_id" : ObjectId("5ca20a9c66324ffac2a7dc63"), "StudentName" : "Chris", "StudentDetails" : [ { "StudentTotalScore" : 540, "StudentCountryName" : "US" }, { "StudentTotalScore" : 489, "StudentCountryName" : "UK" } ] }
Sau đây là truy vấn để ngăn MongoDB trả lại ID đối tượng khi tìm tài liệu quảng cáo
> db.preventObjectIdDemo.find({ _id: ObjectId("5ca20a9c66324ffac2a7dc63")}, {StudentDetails: { $slice: [0, 1] } ,'_id': 0} ).pretty();
Sau đây là kết quả mà ObjectID không hiển thị
{ "StudentName" : "Chris", "StudentDetails" : [ { "StudentTotalScore" : 540, "StudentCountryName" : "US" } ] }