[MONGODB] MongoDB를 집계하여 문자열의 배열을 반환하는 방법
MONGODBMongoDB를 집계하여 문자열의 배열을 반환하는 방법
나는 MongoDB를 집계하여 문자열의 배열을 반환해야합니다. 나는 다음과 같은했다 :
db.users.aggregate([{$group: {_id:"$emails.address"}}])
그것은 반환 :
{ "_id" : [ "a@a.com" ] }
{ "_id" : [ "b@a.com" ] }
{ "_id" : [ "c@a.com" ] }
이와 같은 문자열의 배열을 반환하는 방법이 있나요 :
["a@a.com","b@a.com","c@a.com"]
당신에게 저를 도와 귀하의 시간을 내 주셔서 대단히 사람을 감사합니다 ..
편집하다
데이터를 추가 :
{
"_id" : "ukn9MLo3hRYEpCCty",
"createdAt" : ISODate("2015-10-24T03:52:11.960Z"),
"emails" : [
{
"address" : "a@a.com",
"verified" : false
}
]
}
{
"_id" : "5SXRXraariyhRQACe",
"createdAt" : ISODate("2015-10-24T03:52:12.093Z"),
"emails" : [
{
"address" : "b@a.com",
"verified" : false
}
]
}
{
"_id" : "WMHWxeymY4ATWLXjz",
"createdAt" : ISODate("2015-10-24T03:52:12.237Z"),
"emails" : [
{
"address" : "c@a.com",
"verified" : false
}
]
}
해결법
-
==============================
1..aggregate () 메소드는 항상 반환 당신이 상관없이 개체와 그 변경할 수 없습니다.
.aggregate () 메소드는 항상 반환 당신이 상관없이 개체와 그 변경할 수 없습니다.
당신의 목적을 위해 당신은 더 나은 단지 고유 값의 배열을 반환 않는 대신) (.distinct를 사용하여 떨어져 아마 :
db.users.distinct("emails.address");
어떤 정확히 원하는 출력입니다 :
["a@a.com","b@a.com","c@a.com"]
당신이 정말로 .aggregate를 사용하려면 () 그럼 그냥 값의 요구에 어트 변환은 사후 처리 식의 "외부"발생합니다. 그리고 당신은이 같은 배열을 다룰 때 $ 언 와인드를 사용해야합니다.
당신은 예를 들어, 자바 스크립트의 .map ()로이 작업을 수행 할 수 있습니다
db.users.aggregate([ { "$unwind": "$emails" }, { "$group": { "_id": "$emails.address" } } ]).map(function(el) { return el._id })
이는 동일한 출력을 제공하지만, .MAP ()는 서버에 대신 변환 클라이언트 측을한다.
-
==============================
2.무엇 Blakes 세븐이 응답 한 것은 권리입니다.
무엇 Blakes 세븐이 응답 한 것은 권리입니다.
그러나, 당신이 배열에 넣어와 객체의 배열을 반환 할 수없는 것을 의미하지 않는다.
나는 당신의 노드 서버가 계속 다른 요청을 사용할 수 있습니다로 데이터베이스 자체의 배열에서 해당 매핑이 더 많은 것 생각한다.
db.users.aggregate([ { "$unwind": "$emails" }, { "$group": { "_id": null, emails:{$push:"$emails.address"} } }, { "$project":{emails:true,_id:false}} ])
이 반환합니다 :
{ "emails" : [ "a@a.com", "b@a.com", "c@a.com" ] }
from https://stackoverflow.com/questions/33425565/how-to-return-array-of-string-with-mongodb-aggregation by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 MongoDB를 함께 배열의 순서를 변경하려면? (0) | 2019.12.26 |
---|---|
[MONGODB] MongoDB를의 통합 프레임 워크 이동 평균? (0) | 2019.12.26 |
[MONGODB] 몽구스의 최대 값을 얻을 (0) | 2019.12.26 |
[MONGODB] MongoDB를 찾을 () 및 findOne () 메소드는 다른 결과를 도시 (0) | 2019.12.26 |
[MONGODB] 문서 및 MongoDB를에 조건을 일치의 모든 하위 문서 (사용 봄) 조회 (0) | 2019.12.26 |