如何在mongodb中把一个集合中的对象id作为属性传入另一个集合中?

问题描述 投票:0回答:1

我用nodejs,express和ejs建立了一个博客,并设置了登录和注册,使用护照进行认证。我只是想让用户能够保护自己的文章,即只允许他们能够编辑和删除自己的文章。在网上搜索的时候,我一直没有找到一个明确的方法来实现这个目标,所以在寻找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属性 和项目集合的userId属性,这意味着userId必须和用户集合的id属性相同。

有什么办法可以让我的博客模型中的一个名为Usersid的属性设置为等于我的登录用户的id的id。

node.js database mongodb authentication passport.js
1个回答
0
投票

我会尝试用mongoose中的populate方法。创建用户和帖子模式,然后通过添加一个属性将它们连接起来,该属性将帖子所有者与相应的用户相联系。请看一下文档 mongoose docs populate

© www.soinside.com 2019 - 2024. All rights reserved.