MongoDB의 컬렉션 레코드 내 배열 정렬
문제 설명
MongoDB의 학생 기록. 각 기록에는 내장된 점수 배열이 포함되어 있습니다. 점수 배열을 점수 값을 기준으로 내림차순으로 정렬하는 작업입니다.
해결 방법
MongoDB 쿼리 언어의 한계로 인해 내장된 배열을 직접 조작하는 작업입니다. 쿼리 자체 내에서는 불가능합니다. 이러한 정렬을 수행하려면 다음 두 가지 접근 방식을 탐색할 수 있습니다.
1. 애플리케이션 수준 정렬
찾기 쿼리를 사용하여 컬렉션에서 점수 배열을 추출합니다. 애플리케이션 코드 내에서 점수 배열을 내림차순으로 정렬합니다. 정렬된 점수 배열로 레코드를 다시 MongoDB로 업데이트합니다.
2. MongoDB Aggregation Framework
MongoDB Aggregation Framework를 활용하면 MongoDB 자체 내에서 정렬을 수행할 수 있습니다. 다음은 숙제 점수를 내림차순으로 정렬하는 샘플 집계 파이프라인입니다.
db.students.aggregate([ { $match: { _id: 1 } }, // Initial document match { $unwind: '$scores' }, // Expand scores array into individual documents { $match: { 'scores.type': 'homework' } }, // Filter to homework scores { $sort: { 'scores.score': -1 } }, // Sort in descending order ])
샘플 출력:
{ "result" : [ { "_id" : 1, "name" : "Aurelia Menendez", "scores" : { "type" : "homework", "score" : 71.76133439165544 } }, { "_id" : 1, "name" : "Aurelia Menendez", "scores" : { "type" : "homework", "score" : 34.85718117893772 } } ], "ok" : 1 }
위 내용은 MongoDB에 포함된 점수 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!