1

我有这个架构,电子邮件是主键。经理列保存经理的电子邮件。当经理登录他的帐户时,我需要在他是经理的表中找到所有员工的列表。如果经理没有经理,我会放一些虚拟文本。我需要遍历表并获取一组用户或任何其他我可以遍历的结构。我将把它传递给 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 进行连接之类的操作,但没有成功。后来我意识到我可以简单地遍历表。我不完全确定迭代表格是否安全,在这种情况下使用其他更安全的东西吗?

4

2 回答 2

0
User.statics.findKey({}, (err, users) => {
        if(err) {
                next(err);
        }
        users.map(user => {
          //iterate
        })
})

我想通了,浏览了文档。

于 2020-06-10T20:26:42.977 回答
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
<% }); %> 
于 2020-06-10T20:33:23.280 回答