我如何将集合中的对象 ID 作为 属性 传递到 mongodb 中的另一个集合中
How do i pass in the object id in a collection as a property in another collection in mongodb
我已经使用 nodejs、express 和 ejs 建立了一个博客,其中包含用于身份验证的登录和注册设置。我只是想让用户能够保护他们的 post,即只允许他们能够编辑和删除他们的 post。找到一种使用 mongodb 来做到这一点的方法非常令人沮丧,因为我在网上搜索时还没有找到确定的方法来做到这一点。
我发现了一个可能有解决方案的 YouTube 视频:
module.exports = {
ROLE: ROLE,
users: [
{ id: 1, name: 'Kyle', role: ROLE.ADMIN },
{ id: 2, name: 'Sally', role: ROLE.BASIC },
{ id: 3, name: 'Joe', role: ROLE.BASIC }
],
projects: [
{ id: 1, name: "Kyle's project", userId: 1 },
{ id: 2, name: "Sally's Project", userId: 2 },
{ id: 3, name: "Joe's project", userId: 3 }
]
}
他的逻辑基于将用户集合的 ID 属性 与项目集合的用户 ID 属性 相匹配,这意味着用户 ID 必须与 ID [=23] 相同=] 在用户集合中。
有什么方法可以在我的博客模型中将 属性 一个名为 userid 的 属性 设置为等于我登录用户的 ID。
我会尝试使用 mongoose 中的 populate 方法。创建用户和 Post 模式,然后通过添加 属性 将它们链接起来,该 post 所有者与适当的用户相关联。
看看文档!
mongoose docs populate
我已经使用 nodejs、express 和 ejs 建立了一个博客,其中包含用于身份验证的登录和注册设置。我只是想让用户能够保护他们的 post,即只允许他们能够编辑和删除他们的 post。找到一种使用 mongodb 来做到这一点的方法非常令人沮丧,因为我在网上搜索时还没有找到确定的方法来做到这一点。
我发现了一个可能有解决方案的 YouTube 视频:
module.exports = {
ROLE: ROLE,
users: [
{ id: 1, name: 'Kyle', role: ROLE.ADMIN },
{ id: 2, name: 'Sally', role: ROLE.BASIC },
{ id: 3, name: 'Joe', role: ROLE.BASIC }
],
projects: [
{ id: 1, name: "Kyle's project", userId: 1 },
{ id: 2, name: "Sally's Project", userId: 2 },
{ id: 3, name: "Joe's project", userId: 3 }
]
}
他的逻辑基于将用户集合的 ID 属性 与项目集合的用户 ID 属性 相匹配,这意味着用户 ID 必须与 ID [=23] 相同=] 在用户集合中。
有什么方法可以在我的博客模型中将 属性 一个名为 userid 的 属性 设置为等于我登录用户的 ID。
我会尝试使用 mongoose 中的 populate 方法。创建用户和 Post 模式,然后通过添加 属性 将它们链接起来,该 post 所有者与适当的用户相关联。
看看文档!
mongoose docs populate