节点js + Mongo dbdevise

我正在开发一个node.js + mongoose webapp,我对数据库创build有一个疑问。 这是如何定义数据库的:

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 

谢谢!

希望你能帮我!

这得看情况。 你的问题没有明确的答案。 一般来说,我build议你不要使用本地的MongoDB字段引用,这些引用的开销略微大一些。

对于我所有的项目,我一定会select第一个解决scheme,这个解决scheme通常要灵活得多,这样可以节省一些磁盘空间。 在必须自己做更多的请求的时候。

这种情况下的简单数据结构是使用什么mongoose调用embedded式文档 。

正如Brandon Tilley所提到的,您可能还想看看类似DBRef的行为并填充mongoose的function。 这将允许您将您的评论实体作为独立的独立实体来处理。 缺点是,如果你有一个评论的实例,并想访问用户的属性,你必须首先填充你的用户引用。

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