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
}