0

을이MongoDB 집계 ... 배열 내부에서 계산하면 자바 스크립트에서 출력됩니다. nodeJS를 사용하여,

var testSchema = new mongoose.Schema({ 
    name: String, 
    image: String, 
    comments: [ 
     { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: "Comment" 
     } 
    ] 
}); 

그래서 모든 사용자가 이름, 사진 및 의견을 가지고 내 몽구스 스키마입니다 몽구스. 주석은 배열입니다. 기본적으로 나는 다른 의견에, 나는 그것의 사용자 당 주석을 계산이

db.users.aggregate({$project: { count: {$size:"$comments"}}}) 

을 시도 ..

을 사용자 당에 얼마나 많은 의견을 계산하고 HTML에 표시 할 10 명의 사용자가 모든 사용자 ... 어떻게 html로 출력 할 수 있습니까? 어떻게하면 1 명의 사용자 만이 명령을 수행 할 수 있습니까? 모든 사용자가 아닙니다 ... 감사합니다!

+1

왜 안'$ db.users.findOne 같은 ({_ ID : usersId}) –

+0

이 어떻게 자바 스크립트에 그것의 가치를 얻을 수 comments.length'.? 그래서 내가 HTML에 그것을 출력 할 수 ... 고마워요! – John

+0

감사합니다! 하지만 JS 에서이 명령을 시도하면, 그것은 내게 오류를 제공합니다, 그것은 '길이'속성을 읽을 수 없다는 ... 여기에 내 코드'var countComment = TestData.findOne ({_ id : 'ObjectId ("57cdf6b3fbccf41198389aca") '}). comments.length;' – John

답변

0

단일 사용자가 작성한 의견 수를 확인하려면 mongoose에서 다음 명령을 사용하십시오.

Users.findOne({_id: ObjectId("57cdf6b3fbccf41198389aca")}, function(err, user) { 
    if(err) { 
     //handle error 
    } else if(!user) { 
     //no user found 
    } else { 
     //user found 
     if(user.comments) { 
      console.log('user comments length', user.comments.length); 
     } else { 
      console.log('no user comments'); 
     } 
    } 
}) 
관련 문제