일부 집계 쿼리를 실행하는 Mongo 데이터베이스가 있습니다. 다음은 실행할 간단한 쿼리입니다.평균값이 0인지 또는 null인지 확인하는 방법은 무엇입니까?
db.coll.aggregate([
{ $group: {
_id: 'fieldA',
fieldB: { $avg: '$fieldB' }
} },
])
이 필드는 데이터를 fieldA로 그룹화하고 fieldB의 평균을 계산합니다. 어쨌든 결과 집합의 일부 행은 fieldB의 값으로 0을가집니다. 거기에 대한 2 가지 이유가 될 수 있습니다
- 평균 값이 fieldB을하지 않은 그룹에 0
- 모든 문서 (또는 값에 null를했다) 이 경우 Mongo의 동작은 0을 반환합니다.
다른 쿼리를 실행하거나 집계 파이프 라인을 떠나지 않고 결과 선택에서 각 행에 대해 어떤 시나리오가 발생했는지 확인할 수 있습니까?
UPDATE
내가 그런 내가 몇 가지 필드에 대한 집계를하고 있어요으로 null이 아닌 필드를, 필터링 할 수 없습니다:
db.coll.aggregate([
{ $group: {
_id: 'fieldA',
fieldB: { $avg: '$fieldB' },
fieldC: { $avg: '$fieldC' }
} },
])
문서 중 일부는 fieldB가있을 수 있지만, fieldC가 아니라 그 반대입니다.
는'$의 avg'에 포함되지 않아야 문서를 필터링 할 파이프 라인에'$의 match'를 추가합니다. – WiredPrairie