使用MongoDBdevise数据库文档时出现混乱

我用这样来devise“桌子”

teacher - id - name student - id - teacher_id - name 

假设1位老师可以有很多学生,所以我把teacher_idjoin。

但在noSql为什么我应该做多个文件? 我可以把所有东西都放在user并使用嵌套的对象

  user = {[ id:1, type:teacher student:[{ id:321 }] ]} 

想象一下,我的应用程序需要在不同的选项卡中检索教师和学生的列表,仍然使用模型我可以获取我需要的数据,我只是在客户端进行过滤/操作,对吗?

如果你使用nodejs那么我首选你在你的节点上使用moongose npm。它使用模式和模型限制。你的方法在RDBMS是好的,但是在mongo中,你避免了连接。

按照您的要求和数据可用性以及read or write操作的使用情况来匹配这种模式

var mongoose = require('mongoose'); var Schema = mongoose.Schema;

 var Teachers = new Schema({ //_id: ObjectId, "name": { "type": String, }, "students": [{ name: String }] }) module.exports = mongoose.model('Teachers', Teachers); 

它避免了你的join。他们与各自的学生一起pipe理所有的老师。

您可以在服务器端进行过滤,并将过滤的数据发送到客户端。 这样更有效率