Javascript 如何有效地为猫鼬模式建模;s

Javascript 如何有效地为猫鼬模式建模;s,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,大家早上好我会尽量简短 我有着SQL/EF的背景,进入猫鼬的心态肯定是错误的 我有三张桌子: 使用者/ 董事会/ BoardObjects 现在,我最初考虑在用户文档中将这些板存储为一个数组。但我认为我的做法是错误的,我需要社区的建议 我需要能够查询哪些用户拥有哪些板,这些板上有哪些对象,我放入的阵列是一场噩梦。然后我想,我需要跨越这些吗 例如,如果我存储一个用户,然后创建一个板,板中有一个用户ID,必须是用户唯一的,BoardObjects的用户ID和BoardId也是一样的,从我到目前为止读

大家早上好我会尽量简短

我有着SQL/EF的背景,进入猫鼬的心态肯定是错误的

我有三张桌子:

使用者/ 董事会/ BoardObjects

现在,我最初考虑在用户文档中将这些板存储为一个数组。但我认为我的做法是错误的,我需要社区的建议

我需要能够查询哪些用户拥有哪些板,这些板上有哪些对象,我放入的阵列是一场噩梦。然后我想,我需要跨越这些吗

例如,如果我存储一个用户,然后创建一个板,板中有一个用户ID,必须是用户唯一的,BoardObjects的用户ID和BoardId也是一样的,从我到目前为止读到的内容来看,通过使用连接和其他什么,这可能是可行的,我仍然需要学习

这里的社区景观如何?你经常嵌入或正常化吗?或者这是管理mongoose中相关数据的有效方法

为上下文提供模板


如果我理解正确,您需要在两个表之间创建一个关系。在用户模型中,您可以添加如下内容

userSchema.virtual('boards', {
    ref: 'Boards',
    localField: '_id',
    foreignField: 'owner'
});
然后,作为boards模型的一部分,将用户作为模型上的对象建立关系,如下所示

owner:{
    type: mongoose.Schema.Types.ObjectId,
    required: true,
    ref: 'User'
}

我希望这有帮助

抱歉,伙计,你完全忽略了BoardObjects,这并没有真正回答我的问题,你只是重构了模型导出的方式,它工作得很好。。尽管如此,谢谢你的时间,我很高兴能帮上忙
userSchema.virtual('boards', {
    ref: 'Boards',
    localField: '_id',
    foreignField: 'owner'
});
owner:{
    type: mongoose.Schema.Types.ObjectId,
    required: true,
    ref: 'User'
}