4
나는
나는 다음과 같은 문서 내 통합 파이프 라인으로 들어오는 한 무엇을 가지고 : 나는
이 $project
를 사용하여 원하는 것은
[
{
"email" : "[email protected]",
"name" : "Organization Name",
"users" : [
{
"lastName" : "Nye",
"firstName" : "Bill",
"email" : "[email protected]"
},
{
"lastName" : "Rogers",
"firstName" : "Mr.",
"email" : "[email protected]"
}
]
},
...
]
내가 배열의 각 내에서 firstName
및 lastName
필드를 $concat
할 하위 결과는 다음과 같습니다.
{
"email" : "[email protected]",
"name" : "Organization Name",
"users" : [
{
"name" : "Bill Nye",
"email" : "[email protected]"
},
{
"name" : "Mr. Rogers",
"email" : "[email protected]"
}
]
}
나는 시도했다 - 시도 # 1
나는 다음과 같은 통합 시도했다 :
db.organizations.aggregate([
{
$project: {
email : 1,
name : 1,
users : {
name : { $concat : [ "$users.firstName", " ", "$users.lastName" ] },
email : 1
}
}
}
]);
을 ...하지만 나는 다음과 같은 오류가 발생합니다 : 내가 '무엇
$concat only supports strings, not Array
해봤 - 시도 # 2
을 나는 또한 시도했다 다음 집계 :
db.organizations.aggregate([
{
$project: {
email : 1,
name : 1,
users : {
name : { $concat : [ "$firstName", " ", "$lastName" ] },
email : 1
}
}
}
]);
... name
은 항상 null
을 반환합니다.
나는 이것이 비교적 간단한 일인 것처럼 느껴진다. 그러나 나는 완전히 난처하게된다.
내가 원하는 결과를 얻으려면 어떻게해야합니까?
이 답변은 @ chridam의 대답뿐 아니라 다른 각도에서 문제를 다루는 동안, 나는 그의 해결책을 사용하여 끝냈다. 시간 내 줘서 고마워! – docksteaderluke
@ docksteaderluke 다른 해결책은 "사실에 어긋난다"는 사실에도 불구하고 분명히 갈 길이 없기 때문에이 솔루션을 사용할 줄 알았습니다. – styvane
정성스럽게 케어 하시겠습니까? 왜 그것이가는 길은 아닌가요? – docksteaderluke