如何遍历猫鼬表?

时间:2020-06-08 08:14:22

标签: node.js express mongoose

我有此架构,电子邮件是主键。管理员列包含管理员的电子邮件。当经理登录到他的帐户时,我需要在他作为经理的表中找到所有雇员的列表。如果经理没有经理,我会放一些假文字。我需要遍历表并获取一个用户数组或其他可以遍历的结构。我将把它传递给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进行类似联接的操作,但这种方法无效。后来我意识到我可以简单地遍历表。我不确定在表上进行迭代是否安全,在这种情况下是否使用其他更安全的方法?

2 个答案:

答案 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
<% }); %>