Express를 사용하고 MongoDb breakfast-tacos
에 rating:
. rating
5보다 크지 않은 숫자 인 필드 의 평균 값을 계산 하려고합니다. 시도 aggregate
중이지만 계속 TypeError: db.collection(...).aggregate(...).then is not a function
. 집계 파이프 라인 / 몽고를 처음 접하는 사람이라면 누구나 이것을 사용하여 네이티브 mongodb (몽구스가 아님)로 평균 값을 올바르게 얻는 방법과 설명을 제공 할 수 있습니까?
내 코드 :
app.get('/breakfast-rating', (req, res) => {
db.collection('breakfast-tacos').aggregate([{$group: { "_id": "$ObjectId"}, $avg: {"rating":"$rating" }}])
.then(results => {
res.send({ rating: results });
})
.catch(error => console.error(error))
});
모든 rating
필드 의 평균 값을 확인하려는 경우 다음과 같이 간단한 것이 필요합니다.
db.collection.aggregate([
{
$group: {
_id: "avg",
avgrating: {
$avg: "$rating"
}
}
}
])
따라서 코드는 다음과 같아야합니다.
app.get('/breakfast-rating', (req, res) => {
db.collection('breakfast-tacos').aggregate([
{
$group: {
_id: "avg",
avgrating: {
$avg: "$rating"
}
}
}
])
.then(results => {
res.send({ rating: results[0].avgrating });
})
.catch(error => console.error(error))
});
몽고 플레이 그라운드 : https://mongoplayground.net/p/7zLr3E6FoLh
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다