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” ในฟิลด์เฉพาะ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *