Để loại bỏ _id khỏi kết quả, có 2 cách: projection trong find() hoặc xử lý trong shell JavaScript. Tạo collection:
> db.demo590.insert([
... { "Name": "Chris", "Age": 21 },
... { "Name": "Bob", "Age": 20 },
... { "Name": "Sam", "Age": 19 }
... ]);
BulkWriteResult({ "nInserted" : 3 })
Hiển thị mặc định (có _id):
> db.demo590.find();
Cách 1 - Projection (khuyên dùng):
db.demo590.find({}, {_id: 0, Name: 1, Age: 1})Cách 2 - Shell JavaScript (demo bài gốc): Duyệt cursor, xây dựng object mới, push vào mảng:
> var listOfObject = []; > db.demo590.find().forEach(function(d){ ... var ob = {}; ... ob["StudentFirstName"] = d.Name; ... ob["StudentAge"] = d.Age; ... listOfObject.push(ob); ... }); > listOfObject;Kết quả (mảng object thuần, không _id, đổi tên trường):
[ { "StudentFirstName" : "Chris", "StudentAge" : 21 }, { "StudentFirstName" : "Bob", "StudentAge" : 20 }, { "StudentFirstName" : "Sam", "StudentAge" : 19 } ]So sánh: Cách 1 hiệu quả hơn (xử lý ở server). Cách 2 linh hoạt chuyển đổi tên trường, cấu trúc dữ liệu phức tạp ở client.