2016-09-06 50 views
0

,這是我的貓鼬架構MongoDB Aggregation ..計數內部數組產生的JavaScript輸出。使用的NodeJS,貓鼬

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

所以每個用戶都有一個名字,照片和評論。評論是數組。基本上,我有10個用戶,不同的意見,我想指望每個用戶有多少意見,並在HTML顯示它..

我已經嘗試了本

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

它計算每個用戶的意見所有用戶...我怎麼能輸出這個HTML?以及我如何才能對1個用戶執行此命令?不是所有用戶......謝謝!

+1

爲什麼不喜歡'$ db.users.findOne({_ ID:usersId})comments.length' –

+0

我怎樣才能得到它的JavaScript的價值?所以我可以輸出它的HTML ...謝謝先生! – John

+0

其工作表示感謝!但是當我在JS上試過這個命令時,它給了我一個錯誤,它說它無法讀取'length'屬性......這是我的代碼'var countComment = TestData.findOne({_ id:'ObjectId(「57cdf6b3fbccf41198389aca」 )'})。comments.length;' – John

回答

0

要找到單個用戶發表的評論數,請在貓鼬中使用以下命令。

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'); 
     } 
    } 
})