Node js + Mongo db design
Node js + Mongo db design
我正在开发一个节点.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来说非常简单。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- Backbone.js restful json API design
- 加载db.json时出错
- 如何使用javascript var引用Mongo DB集合's字段
- 如何使用angular _ design保持全局当前用户直到注销
- Material Design Lite所有元素加载JS回调
- 在Knockout JS中搜索从DB加载数据的项目
- JS驱动的常见问题页面的推荐DB解决方案
- 为什么我的Mongoose DB模式之一可能是“;强制转换为未定义的“;当它的实例被放置在第二个模式中时
- fetch data from db using javascript & php
- 如何根据DB中的值迭代选择并设置多个选项
- mongodb中db.collection.find()的返回类型是什么
- AJAX和phpJSON连接DB和retern值
- JavaScript 切换 Material Design Lite 开关
- 为什么有单独的蒙戈.服务器和蒙戈.Db在Mongodb本地驱动程序中
- AJAX使用php和javascript连接到db
- 等值线缺省值在插入 db 之前不设置该值
- PhoneGapBuild - 下载 sqlite db 并连接到它
- PubSub Design Pattern 的 Jquery 语法解释
- Node js + Mongo db design