mongoose多表查询
用户表和帖子表为例
帖子表:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const BlogPost = new Schema({
us:String,
theme:String,
desc:String,
usID:{ //保存user中的id
type: mongoose.Schema.ObjectId,
ref:"user" //与下面user表声明一致
}
});
BlogPost.statics = {
findusimgByCardUs:function(cardUs, callback){ //
return this
.findOne({_id:cardUs}).populate('usID') //usID要与前面一致
.exec(callback)
}
}
//上面是声明的模型,
module.exports=mongoose.model('card',BlogPost);
用户:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const user = new Schema({
us:String,
phone:String,
ps:String,
photo:String,
});
//上面是声明的模型,
module.exports=mongoose.model('user',user);
查询:
let user=require("./user-data.js");//user表
let card=require("./card-data.js");//帖子表
card.findusimgByCardUs(res1[i].themeid, function (err, card){
if(err) console.log(err);
console.log(card);
})