การดึงเฉพาะชื่อพนักงานที่มีเงินเดือนตรงกับรายการที่กำหนด ใช้ $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