我有此架构,电子邮件是主键。管理员列包含管理员的电子邮件。当经理登录到他的帐户时,我需要在他作为经理的表中找到所有雇员的列表。如果经理没有经理,我会放一些假文字。我需要遍历表并获取一个用户数组或其他可以遍历的结构。我将把它传递给ejs并打印列表。
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
manager: {
type: String,
required: true
}
});
const User = mongoose.model('User', UserSchema);
我尝试使用populate进行类似联接的操作,但这种方法无效。后来我意识到我可以简单地遍历表。我不确定在表上进行迭代是否安全,在这种情况下是否使用其他更安全的方法?
答案 0 :(得分:0)
User.statics.findKey({}, (err, users) => {
if(err) {
next(err);
}
users.map(user => {
//iterate
})
})
我想通了,仔细阅读了文档。
答案 1 :(得分:0)
如果要将所有用户传递到ejs模板中进行渲染,则可以执行以下操作:-
const users = await User.find({manager : '<managerName>' })
res.render('template', {users : users})
然后在您的ejs模板中,您可以遍历此数组
<% users.forEach( user => { %>
<p><%=user.name%></p>
// Do other stuff with the user
<% }); %>