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

รับบันทึกแบบสุ่มจาก MongoDB หรือไม่


ในการรับเร็กคอร์ดแบบสุ่มจาก MongoDB คุณสามารถใช้ฟังก์ชันการรวม ไวยากรณ์มีดังนี้:

db.yourCollectionName.aggregate([{$sample:{size:1}}]);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสารบางส่วน แบบสอบถามเพื่อสร้างคอลเลกชันมีดังนี้:

>db.employeeInformation.insert({"EmployeeId":1,"EmployeeName":"Maxwell","EmployeeAge":26});
WriteResult({ "nInserted" : 1 })
>db.employeeInformation.insert({"EmployeeId":2,"EmployeeName":"David","EmployeeAge":25});
WriteResult({ "nInserted" : 1 })
>db.employeeInformation.insert({"EmployeeId":3,"EmployeeName":"Carol","EmployeeAge":24});
WriteResult({ "nInserted" : 1 })
>db.employeeInformation.insert({"EmployeeId":4,"EmployeeName":"Bob","EmployeeAge":28});
WriteResult({ "nInserted" : 1 })
>db.employeeInformation.insert({"EmployeeId":5,"EmployeeName":"Sam","EmployeeAge":27);
WriteResult({ "nInserted" : 1 })

ตอนนี้คุณสามารถแสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

> db.employeeInformation.find().pretty();

ต่อไปนี้เป็นผลลัพธ์:

{
   "_id" : ObjectId("5c6d3079734e98fc0a434ae5"),
   "EmployeeId" : 1,
   "EmployeeName" : "Maxwell",
   "EmployeeAge" : 26
}
{
   "_id" : ObjectId("5c6d308c734e98fc0a434ae6"),
   "EmployeeId" : 2,
   "EmployeeName" : "David",
   "EmployeeAge" : 25
}
{
   "_id" : ObjectId("5c6d309d734e98fc0a434ae7"),
   "EmployeeId" : 3,
   "EmployeeName" : "Carol",
   "EmployeeAge" : 24
}
{
   "_id" : ObjectId("5c6d30ab734e98fc0a434ae8"),
   "EmployeeId" : 4,
   "EmployeeName" : "Bob",
   "EmployeeAge" : 28
}
{
   "_id" : ObjectId("5c6d30bb734e98fc0a434ae9"),
   "EmployeeId" : 5,
   "EmployeeName" : "Sam",
   "EmployeeAge" : 27
}

นี่คือแบบสอบถามเพื่อรับบันทึกแบบสุ่ม:

> db.employeeInformation.aggregate([{$sample:{size:1}}]).pretty();

ต่อไปนี้เป็นผลลัพธ์:

{
   "_id" : ObjectId("5c6d30bb734e98fc0a434ae9"),
   "EmployeeId" : 5,
   "EmployeeName" : "Sam",
   "EmployeeAge" : 27
}

ให้เราสุ่มบันทึกโดยใช้แบบสอบถามเดียวกัน:

> db.employeeInformation.aggregate([{$sample:{size:1}}]).pretty();

ต่อไปนี้เป็นผลลัพธ์:

{
   "_id" : ObjectId("5c6d308c734e98fc0a434ae6"),
   "EmployeeId" : 2,
   "EmployeeName" : "David",
   "EmployeeAge" : 25
}