Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Hiển thị tất cả trường trừ _id trong MongoDB

Để 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.