Mongodb: วิธีนับค่าที่แตกต่างกันในฟิลด์
คุณสามารถใช้วิธีการต่อไปนี้เพื่อนับค่าที่แตกต่างกันในช่องเฉพาะใน MongoDB:
วิธีที่ 1: ค้นหารายการค่าที่แตกต่างกัน
db.collection.distinct( 'field_name' )
วิธีที่ 2: ค้นหาจำนวนค่าที่แตกต่างกัน
db.collection.distinct( 'field_name' ).length
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับ ทีม เรียกเก็บเงินพร้อมเอกสารต่อไปนี้:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Rockets ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
ตัวอย่างที่ 1: ค้นหารายการค่าที่แตกต่างกัน
เราสามารถใช้โค้ดต่อไปนี้เพื่อค้นหารายการค่าที่แตกต่างกันในช่อง “ทีม”:
db.teams.distinct( 'team' )
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
['Cavs', 'Mavs', 'Rockets']
ผลลัพธ์จะแสดงชื่อทีมที่แตกต่างกันสามชื่อในเอกสารทั้งหมด
นอกจากนี้เรายังสามารถใช้โค้ดต่อไปนี้เพื่อค้นหารายการค่าที่แตกต่างกันในช่อง “ตำแหน่ง”:
db.teams.distinct( 'position' )
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
['Center', 'Forward', 'Guard']
หมายเหตุ : MongoDB เรียงลำดับค่าที่แตกต่างกันตามตัวอักษรตามค่าเริ่มต้น
ตัวอย่างที่ 2: ค้นหาจำนวนค่าที่ไม่ซ้ำ
เราสามารถใช้โค้ดต่อไปนี้เพื่อนับจำนวนค่าที่แตกต่างกันในช่อง “ทีม”:
db.teams.distinct( 'team' ).length
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
3
สิ่งนี้บอกเราว่ามีค่าที่แตกต่างกัน 3 ค่าในช่อง “ทีม”
นอกจากนี้เรายังสามารถใช้โค้ดต่อไปนี้เพื่อนับจำนวนค่าที่ไม่ซ้ำในช่อง “คะแนน”:
db.teams.distinct( 'points' ).length
แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:
5
สิ่งนี้บอกเราว่ามีค่าที่แตกต่างกัน 5 ค่าในช่อง “คะแนน”
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน แยกต่างหากได้ ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีจัดกลุ่มตามและนับ
MongoDB: วิธีจัดกลุ่มตามหลายฟิลด์
MongoDB: วิธีค้นหาค่าสูงสุดในคอลเลกชัน