选择主题

选择导航背景

mongodb数据库高级技巧关联查询populate

 ArticleModel.find({}).populate('cid').populate('author_id').exec(function(err,docs){
        console.log(docs);
})

popular里放外键,exec关联起来,好像是这么理解的,第一回接触这种主键外键,有点蒙

var mongoose=require('./db.js');

var UserSchema = new mongoose.Schema({

    username  : { type: String, unique: true },

    password:String,

    name:String,

    age:Number,

    sex:String,

    tel:Number,

    status:{

        type:Number,

        default:1

    }

});

module.exports=mongoose.model('User',UserSchema,'user');

===============

// article.js 文章表中cid是ArticleCate的外键,author_id是user表的外键

var mongoose=require('./db.js');

var Schema=mongoose.Schema;

var ArticleSchema = new Schema({

    title:{         

        type: String, unique: true     

    },

    cid : {         

        type: Schema.Types.ObjectId,   

        ref:"ArticleCate"    //cid和 文章分类建立关系。哪个表是外键就放在哪个表   model    

    },   /*分类 id*/

    author_id:{        

        type: Schema.Types.ObjectId ,

        ref:"User"    //author_id和 用户表建立关系。   model

    },   /*用户的id*/

    author_name:{        

        type:String      

    },

    descripton:String,   

    content   : String

});

module.exports=mongoose.model('Article',ArticleSchema,'article');

=================

var mongoose=require('./db.js');

var ArticleCateSchema = new mongoose.Schema({

    title  : { type: String, unique: true },

    descripton:String,

    addtime:{

        type:Date       

    }

});

module.exports=mongoose.model('ArticleCate',ArticleCateSchema,'articlecate');

==================

//注意使用 populate需要引入用到的model

var ArticleCateModel=require('./model/articlecate.js');

var ArticleModel=require('./model/article.js');

var UserModel=require('./model/user.js');

//文章表和 分类表的关联

// ArticleModel.find({}).populate('cid').exec(function(err,docs){

// console.log(docs);

// })

//三个表关联

ArticleModel.find({}).populate('cid').populate('author_id').exec(function(err,docs){

console.log(docs);

})

// ArticleModel.aggregate  建议使用

==================

1.png