반응형
$name 필드는 누적 개체여야 합니다.
쿼리가 있는데 $group을 사용할 때 "$name은 누적 개체여야 합니다"라는 오류 메시지가 나타납니다. 파일 "$name"을 제거하면 모두 잘 작동하고 "$name" 대신 "name"만 사용하려고 시도했지만 오류가 계속됩니다.
User.aggregate([
{
$match: {
"storeKey": req.body.store
}
},
{
$group: {
"_id": "$_id",
"name": "$name",
"count": {
"$sum": 1
},
"totalValue": {
"$sum": "$value"
}
}
},
{
$sort: sort
},
{
$skip: req.body.limit * req.body.page
},
{
$limit: req.body.limit
}
])...
집계에서만 사용할 수 있고 다음과 같은 이름의 집계 연산자가 있습니다.
당신이 여기서 사용했던 것처럼 당신은 그것을 위해 사용해야 합니다.name열쇠도
{ "$group": {
"_id": "$_id",
"name": { "$first": "$name" }, //$first accumulator
"count": { "$sum": 1 }, //$sum accumulator
"totalValue": { "$sum": "$value" } //$sum accumulator
}}
누산기는 배열로 누적되는 요소의 배열과 같습니다.$first -> 이름 그룹에 들어가는 첫 번째 이름을 지정합니다.
예: 만약 당신이 가지고 있다면,$_id동일하지만 다른 이름["Darik","John"]지정$first다릭 & 유사하게 줄 것입니다.$last존을 줄 것입니다.
$group: {
_id:"$_id",
"name" :{ $last: '$name' },
"count" : { $sum: 1 },
"totalValue": { "$sum": "$value" }
}
db.faq_feedback.aggregate({
$lookup:{
"from":"faq",
"localField":"question_id",
"foreignField":"_id",
"as":"faq"
}
},
{
$unwind:"$faq"
},
{
$project:{
"question_id":1,
"lang":"$faq.lang",
"feedback":"$faq.feedback",
"question":"$faq.question",
"yes":{
"$cond":[
{
"$eq":[
"$feedback",
"yes"
]
},
1,
0
]
},
"no":{
"$cond":[
{
"$eq":[
"$feedback",
"no"
]
},
1,
0
]
}
}
},
{
$group:{
"_id":"$question_id",
"yes":{
"$sum":"$yes"
},
"no":{
"$sum":"$no"
},
"question":{"$first":"$question"},
"lang":{"$first":"$lang"}
}
},
{
$limit:10000
},
{
$skip:0
})
언급URL : https://stackoverflow.com/questions/54440636/the-field-name-must-be-an-accumulator-object
반응형
'programing' 카테고리의 다른 글
| MongoParseError: URI에 호스트 이름, 도메인 이름 및 tld가 없습니다. (0) | 2023.05.09 |
|---|---|
| .NET Core는 Windows 1252에 대해 알지 못합니다. 해결 방법은 무엇입니까? (0) | 2023.05.09 |
| 작업 완료 시기소스를 사용하시겠습니까? (0) | 2023.05.09 |
| 발송인.호출 시작: 람다를 시스템으로 변환할 수 없습니다.위임 (0) | 2023.05.09 |
| Git 하위 모듈을 하위 디렉터리에 추가하려면 어떻게 해야 합니까? (0) | 2023.05.04 |