컬렉션이 있고 해당 컬렉션의 각 문서에 배열 필드 countries
이 있습니다. 나는 아래 국가 중 하나를 포함하는 모든 문서를 선택합니다 :일치하는 배열 요소 수
China, USA, Australia
그리고 출력은 각 문서가 위 국가의 수를 표시해야합니다. 나는 집계 명령 아래 사용 : 예상대로
db.movies.aggregate([
{
$match: { countries: { $in: ["USA", 'China', 'Australia'] } }
},
{
$project: {
countries: {$size: '$countries'}
}
}
]);
가 작동하지 않습니다. 위에 나열된 국가의 문서에있는 모든 국가의 수를 보여줍니다. 예를 들어 countries
필드에 China, Japan
이라는 문서가있는 경우 위의 국가 목록에 China
만 있기 때문에 1을 반환 할 것으로 예상했지만 2를 반환합니다. 집계 명령에서 어떻게 할 수 있습니까?
의 결과 일 것이다
1
반대로,"USA"
에 대한2
을 계산 할 필요가 있었다. –