Node js + Mongo db design

Node js + Mongo db design

本文关键字:db design Mongo js Node      更新时间:2023-09-26

我正在开发一个节点.js + 猫鼬网络应用程序,我对数据库创建有一个疑问。数据库的定义如下:

var user = new Schema({
 id : ObjectId,
 name : String,
 password : String,
 email : String,
 created : Date
});
var comment = new Schema({
 id : ObjectId,
 userId: ObjectId,
 content : String,
 created : Date
})

我想将每条评论与其用户链接...所以。。。哪种方法最好?我想将这两个中的一个添加到评论架构中......但我不知道这是正确答案还是还有另一个更好的答案:

userId: ObjectId,

或:

userObject: user

谢谢!

希望你能帮助我!

嗯,这取决于。您的问题没有明确的答案。一般来说,我建议你不要使用原生的MongoDB字段引用,这会带来轻微的大小开销。

对于我的所有项目,我肯定会选择第一个解决方案,它通常更灵活,可以节省一些磁盘空间。不得不自己再做一个要求。

这种情况的简单数据结构是使用猫鼬所谓的嵌入式文档。

正如 Brandon Tilley 所提到的,您可能还想看看类似 DBRef 的行为并填充猫鼬的功能。这将允许您将注释实体作为单独的独立实体进行处理。缺点是,如果您有注释的实例并且想要访问用户的属性,则必须首先填充对用户的引用。

最后,这取决于您的用例以及您希望如何浏览您的信息。我说不要想太多,尝试任何。如果您稍后决定另一种结构效果最好,只需更改它。幸运的是,这对于MongoDB和NoSQL来说非常简单。