'객체 배열'을 키 값의 단순 배열에 매핑합니다.
저는 mongoDB 집계 파이프라인이 처음이고 정말 기본적인 질문이 있지만 어디에서도 답을 찾을 수 없었습니다.다음 블록을 간단히 변환하고 싶습니다.
"exclude" : [
{
"name" : "Accenture"
},
{
"name" : "Aon Consulting"
}
]
대상:
"exclude" : [
"Accenture",
"Aon Consulting"
]
집계 파이프라인을 사용하지만 https://docs.mongodb.com/manual/reference/operator/aggregation/ 의 문서를 검토한 후에도 방법을 찾을 수 없는 것 같습니다.도와주셔서 고마워요.
@chridam의 대답은 정확하지만, 사용할 필요는 없습니다.$map
.간단하죠.$addFields
/$project
충분할 것입니다.
db.collection.aggregate([
{
$addFields: {
exclude : '$exclude.name'
}
}
])
통합 프레임워크를 사용하여 혁신을 처리한 것은 분명 올바른 방향이었습니다.배열의 개체 키를 키 값 배열에만 매핑하는 주 연산자가 이 경우에 해당합니다.
파이프라인 내에서 함께 사용하여 변환된 필드를 다음과 같이 투영합니다.
db.collection.aggregate([
{
"$addFields": {
"exclude": {
"$map": {
"input": "$exclude",
"as": "el",
"in": "$$el.name"
}
}
}
}
])
위에서 파이프라인 단계는 문서에 새 필드를 추가하고 새 필드의 이름이 기존 필드 이름과 동일한 경우 다음을 포함합니다._id
)에서 해당 필드의 기존 값을 지정된 식의 값으로 덮어씁니다.
그래서 본질적으로 위의 것들이 위를 대체합니다.excludes
.를 사용하여 변환된 배열을 가진 배열은 입력 배열의 각 요소에 식을 적용하여 작동합니다.식은 각 요소를 변수 이름($$el
)에 명시된as
필드를 선택하고 적용된 결과가 있는 배열을 반환합니다.
언급URL : https://stackoverflow.com/questions/46466409/map-an-array-of-objects-to-a-simple-array-of-key-values
'programing' 카테고리의 다른 글
몽고로 풀링과 세트 추가를 동시에 합니다. (0) | 2023.06.24 |
---|---|
SQL Server: Oracle에서 동일한 RowVersion (0) | 2023.06.24 |
오라클의 like 절에 매개 변수 사용 (0) | 2023.06.24 |
Excel 시트 이름을 가져와 매크로에서 변수로 사용 (0) | 2023.06.24 |
Java에서 Statement(Callable Statement)를 인쇄하는 방법은 무엇입니까? (0) | 2023.06.24 |