我正在尝试检查2个对象的值,一个是mongoose返回的,另一个是护照js返回的值。
app.get('/user-area', isLoggedIn, function(req, res){
User.find({}, function(err, users){
if(err) throw err;
res.render('admin/user-area/allUsers', {
user: req.user,
users: users,
logged_user: req.user._id
});
});
});
在上面的代码中,我正在解析ejs文件的值,在ejs文件中我正在做一个简单的比较来过滤掉一些数据。
<ul>
<%for(var i = 0; i < users.length; i++){%>
<%if(logged_user != users[i]._id){%>
<li><%=users[i].local.username%></li>
<%}%>
<%}%>
</ul>
我正在尝试使用简单的if语句过滤掉已登录的用户从打印到屏幕,当在屏幕上作为字符串打印时,它们似乎完全相同但是由于我无法找到的原因,他们在if语句中失败,
答案 0 :(得分:1)
我的猜测是,一个是ObjectId,另一个是String,所以它们永远不会相等。
请参阅此答案以使用equals()比较ObjectIds: