Mongodb: วิธีเลือกตัวอย่างเอกสารแบบสุ่ม
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเลือกตัวอย่างเอกสารแบบสุ่มจากคอลเลกชันใน MongoDB:
db.myCollection.aggregate([ { $sample : { size: 4 } } ])
ตัวอย่างเฉพาะนี้เลือกตัวอย่างแบบสุ่มของเอกสาร 4 รายการ จากคอลเล็กชันที่ชื่อ myCollection
หากต้องการเลือกตัวอย่างแบบสุ่มที่มีขนาดแตกต่างกัน เพียงเปลี่ยนค่าในอาร์กิวเมนต์ ขนาด
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติกับ ทีม เรียกเก็บเงินที่มีเอกสารเจ็ดฉบับต่อไปนี้:
db.teams.insertOne({team: " Mavs ", points: 31}) db.teams.insertOne({team: " Spurs ", points: 22}) db.teams.insertOne({team: " Rockets ", points: 19}) db.teams.insertOne({team: " Warriors ", points: 26}) db.teams.insertOne({team: " Cavs ", points: 33}) db.teams.insertOne({team: " Hornets ", points: 30}) db.teams.insertOne({team: " Nets ", points: 14})
ตัวอย่าง: เลือกตัวอย่างเอกสารแบบสุ่มใน MongoDB
รหัสต่อไปนี้แสดงวิธีการสุ่มตัวอย่างเอกสาร 4 รายการจากคอลเลกชัน ทีม :
db.teams.aggregate([ { $sample : { size: 4 } } ])
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("6203ee711e95a9885e1e765d"), team: 'Cavs', points: 33 } { _id: ObjectId("6203ee711e95a9885e1e765b"), team: 'Rockets', points: 19 } { _id: ObjectId("6203ee711e95a9885e1e7659"), team: 'Mavs', points: 31 } { _id: ObjectId("6203ee711e95a9885e1e765f"), team: 'Nets', points: 14 }
โปรดทราบว่าสี่ทีมต่อไปนี้จะรวมอยู่ในตัวอย่างแบบสุ่มนี้:
- พ่อค้าไวน์
- จรวด
- แมฟ
- อวน
หากเราใช้ฟังก์ชัน $sample อีกครั้ง ระบบจะสุ่มตัวอย่างเอกสารอื่น ซึ่งหมายความว่าไม่มีการรับประกันว่าเอกสารชุดเดียวกันจะถูกเลือก
ตัวอย่างเช่น สมมติว่าเราเลือกตัวอย่างเอกสาร 4 ตัวอย่างแบบสุ่มจากคอลเลกชันของ ทีม :
db.teams.aggregate([ { $sample : { size: 4 } } ])
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("6203ee711e95a9885e1e765b"), team: 'Rockets', points: 19 } { _id: ObjectId("6203ee711e95a9885e1e765f"), team: 'Nets', points: 14 } { _id: ObjectId("6203ee711e95a9885e1e765e"), team: 'Hornets', points: 30 } { _id: ObjectId("6203ee711e95a9885e1e765c"), team: 'Warriors', points: 26 }
สี่ทีมต่อไปนี้รวมอยู่ในตัวอย่างสุ่มนี้:
- จรวด
- อวน
- แตน
- นักรบ
โปรดทราบว่าตัวอย่างสุ่มนี้ไม่ตรงกับตัวอย่างสุ่มในตัวอย่างก่อนหน้าอย่างสมบูรณ์
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $sample ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีใช้แบบสอบถาม “NO IN”
MongoDB: วิธีค้นหา “NOT NULL” ในฟิลด์เฉพาะ