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

แสดงชื่อพนักงานที่มีเงินเดือนตามเงื่อนไข MongoDB $in Projection

การดึงเฉพาะชื่อพนักงานที่มีเงินเดือนตรงกับรายการที่กำหนด ใช้ $in ใน query และ projection ซ่อนฟิลด์ไม่ต้องการ

> 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") }

แสดงข้อมูล:

> db.demo666.find();

คิวรีหาพนักงานเงินเดือน 35000 หรือ 40000 แล้วแสดงแค่ชื่อ

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

ผลลัพธ์:


คำอธิบาย

  • Query: {"EmployeeSalary": {$in: [35000, 40000]}} - กรองเงินเดือน 35k หรือ 40k
  • Projection: {_id: 0, "EmployeeSalary": 0} - ซ่อน _id และ EmployeeSalary แสดงแค่ EmployeeName

Projection Tips

  • {field: 1} - Include (แสดงเฉพาะฟิลด์นี้)
  • {field: 0} - Exclude (ซ่อนฟิลด์นี้ แสดงอื่นๆ)
  • ไม่สามารถผสม Include/Exclude ได้ (ยกเว้น _id ที่ปิดได้ตลอด)
  • {_id: 0, name: 1} = แสดง name, ซ่อน _id

ใช้ $in กับอาร์เรย์ในเอกสาร (Array Field)

เหมือนตัวอย่างก่อนหน้า: {tags: {$in: ["tag1", "tag2"]}} - หาเอกสารที่ tags มี tag1 หรือ tag2