mongoose ObjectId ref的疑问
发布于 2天前 作者 1340641314 198 次浏览 来自 问答

如果使用方案一,可以关联查询获取到用户的信息,如果使用方案二,直接把用户的信息存进去。心中一直都有一个疑问,如果使用方案一来关联查询到用户信息会不会造成程序的性能低下?

关系型数据库和非关系型数据库,这个概念我也还暂时不晓得有啥区别,是不是关系型数据库推荐使用多表关联,非关系型数据库如方案二直接将需要管理的信息存起来。 前端转后端,还望各位大神解答疑惑。

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    var ObjectId = Schema.Types.ObjectId;
    
    //方案一:
    var blogSchema = new mongoose.Schema({
        author: {
            type: ObjectId,
            ref: 'user'
        },
        title: String, //标题
        content: String  //内容
    });
    
    var userSchema = new mongoose.Schema({
        name: String, //昵称
        account: Number //帐号
    });
    
    //方案二
    var blogSchema = new mongoose.Schema({
        title: String, //标题
        content: String,  //内容
        name: String,
        account: Number
    });
    
    var userSchema = new mongoose.Schema({
        name: String, //昵称
        account: Number //帐号
    });
6 回复

好久没发帖,代码是怎么格式化了的

这个要看你这个数据是否会经常修改,是否会共用,比如一个用户信息,你在评论里存了,又在其它地方存了,那个如果用户信息变动了,你就每个地方都要变动。如果是一篇文章的评论,就可以把评论直接存在文章的文档里,因为评论不会经常修改,也不会多处共用

@WilliamDu1981 有道理,具体还是要看使用的场景。你知道社区的帖子代码怎么格式化吗

这个应该是支持markdown语法的,你按md的语法写应该可以

function(e){
    //do something
}

[@1340641314](/user/1340641314) 
回到顶部