[MONGODB] 해당 조건과 일치하는 배열 요소 개수
MONGODB해당 조건과 일치하는 배열 요소 개수
나는 MongoDB를 수집 아래로 참가자의 배열 "회의"라는있다 :
[
{
"_id" : 5b894357a0c84d5a5d221f25,
"conferenceName" : "myFirstConference",
"startDate" : 1535722327,
"endDate" : 1535722420,
"participants" : [
{
"name" : "user1",
"origin" : "internal",
"ip" : "192.168.0.2"
},
{
"name" : "user2",
"origin" : "external",
"ip" : "172.20.0.3"
},
]
},
...
]
나는 다음과 같은 결과를 얻을 싶습니다 :
[
{
"conferenceName" : "myFirstConference",
"startDate" : 1535722327,
"endDate" : 1535722420,
"internalUsersCount" : 1
"externalUsersCount" : 1,
},
...
]
나는 아래의 요청을 시도했지만 작동하지 않습니다 :
db.getCollection("conference").aggregate([
{
$addFields: {
internalUsersCount : {
$size : { "$participants" : {$elemMatch : { origin : "internal" }}}
},
externalUsersCount : {
$size : { "$participants" : {$elemMatch : { origin : "external" }}}
}
}
}
])
{: "내부" "기원"}와 { "기원": "외부"} 어떻게 일치하는 "참가자"배열 요소를 계산하는 것이 가능하다?
해결법
-
==============================
1.당신은 배열의 길이를 계산하기 위해 $ 크기 집계와 함께 외부 기원과 내부 원산지를 필터링 $ 필터 집계를 사용해야합니다.
당신은 배열의 길이를 계산하기 위해 $ 크기 집계와 함께 외부 기원과 내부 원산지를 필터링 $ 필터 집계를 사용해야합니다.
이 같은
db.collection.aggregate([ { "$project": { "conferenceName": 1, "startDate": 1, "endDate": 1, "internalUsersCount": { "$size": { "$filter": { "input": "$participants", "as": "part", "cond": { "$eq": ["$$part.origin", "internal"]} } } }, "externalUsersCount": { "$size": { "$filter": { "input": "$participants", "as": "part", "cond": { "$eq": ["$$part.origin", "external"] } } } } }} ])
산출
[ { "conferenceName": "myFirstConference", "endDate": 1535722420, "externalUsersCount": 1, "internalUsersCount": 1, "startDate": 1535722327 } ]
from https://stackoverflow.com/questions/52167692/count-array-elements-that-matches-condition by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] mongoexport JSON 구문 분석 오류 (0) | 2019.12.27 |
---|---|
[MONGODB] 여러 언어를 사용하여 MongoDB를 텍스트 검색 (0) | 2019.12.27 |
[MONGODB] 몽구스 집계 쿼리 / Mockgoose 시험은 다른 곳에서 작동 농담 실패 (0) | 2019.12.27 |
[MONGODB] NG는-경우가해야보다 더 많은 시간을 호출되는 (0) | 2019.12.27 |
[MONGODB] JSON에 BSON 유형 ObjectId가 변환 (MongoDB의에서 보관) -Java (0) | 2019.12.27 |