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

Hiển thị tên nhân viên có mức lương cụ thể trong MongoDB

Để lấy tên nhân viên theo mức lương cụ thể, dùng $in trên trường lương và projection chỉ lấy tên. Tạo collection:

> db.demo666.insertOne({"EmployeeName":"John","EmployeeSalary":25000});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1c04824113ea5458c7d0d") }
> db.demo666.insertOne({"EmployeeName":"Chris","EmployeeSalary":35000});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1c05524113ea5458c7d0e") }
> db.demo666.insertOne({"EmployeeName":"David","EmployeeSalary":65000});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1c06024113ea5458c7d0f") }
> db.demo666.insertOne({"EmployeeName":"Carol","EmployeeSalary":40000});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1c06f24113ea5458c7d10") }

Hiển thị dữ liệu:

> db.demo666.find();

Kết quả:

Tìm lương 35000 HOẶC 40000, projection chỉ EmployeeName (ẩn _id và EmployeeSalary):

> db.demo666.find({"EmployeeSalary":{$in:[35000,40000]}},{_id:0,"EmployeeSalary":0});

Kết quả chỉ tên 2 nhân viên:

Giải thích projection:

  • {_id: 0} - ẩn _id (mặc định luôn hiện trừ khi tắt)
  • {"EmployeeSalary": 0} - ẩn trường EmployeeSalary
  • Không thể mix include (1) và exclude (0) trừ _id

Mở rộng - Range query: Tìm lương từ 30000 đến 50000: {EmployeeSalary: {$gte: 30000, $lte: 50000}}. Kết hợp index trên EmployeeSalary để tối ưu.