2015-05-22 44 views
1

我不知道這是做正確或有效的爲此事......我需要看用戶是否另一個用戶的追隨者中找到/以下...如何檢查貓鼬對象ref是否包含匹配的字段?

下面是代碼:

var User = new Schema({ 

firstName: {type: String}, 
lastName: {type: String}, 
following: [{ type: ObjectId, ref: 'User' }] 

......}); 



var userId2 = someoneElse; 


var userId = req.query.userId; 
     User.findOne(userId, function(err, results) { 
       if(err) { 
         throw err; 

       } else { 
         var i, newArrayF1, newArrayF2, biggerArraySize; 
         newArrayF1 = results.completedChallenges; 
         newArrayF2 = results.joinedChallenges; 

         if(newArrayF2.length > newArrayF1.length) { 
           biggerArraySize = newArrayF2.length; 
         } else { 
           biggerArraySize = newArrayF1.length; 
         } 
         for(i =0, i < biggerArraySize, i++) { 
           if(newArrayF1[i].followers.indexOf(userId2)) { 
             var obj = {mtype: 2}; 
           res.json(obj); 
           } 

           if(newArrayF2[i].following.indexOf(userId2)) { 
             var obj = {mtype: 1}; 
           res.json(obj); 
           } 

         } 

         if(i == biggerArraySize) { 
           var obj = {mtype: 0}; 
           res.json(obj); 
         } 

       } 

     }); 

我開始檢查,看是否有用戶與其他用戶跟隨/跟隨連接,並返回一個整數,它同夥,

+0

如果它出現在追隨者和追隨者中,那麼mtype應該是什麼? –

回答

0

那麼你可以獲取用戶時使用populate

User.findOne(userId).populate('following').exec(function (err, user) { 
    user.following.forEach(function (person) { 
      // here you have access to each person in the array 
    } 
} 
+0

好吧,其他如果語句搜索和什麼不足夠呢? – Lion789

+1

我真的沒有得到你想要在那裏完成的工作 –

+0

我正在運行檢查以查看用戶是否與其他用戶有跟隨者/跟隨者連接並返回與其關聯的整數,而且,如果我這樣做這樣,那麼我必須用.populate('followers')做第二個查詢......所以這比我的方式更有意義 – Lion789

相關問題