下载mongoose
npm i mongoose
连接数据库
var mongoose=require('mongoose')
mongoose.connect('mongodb://127.0.0.1:27017/articles',function(err){
if(!err){
console.log('数据库连接成功');
}
})
module.exports=mongoose
一共有三个集合,分别是用户集合、文章集合、文章分类集合
用户集合
var mongoose=require('./Conn')
var UserSchema=new mongoose.Schema({
Username:{
type:String,
unique:true
},
age:Number,
sex:String,
status:{
type:Number,
default:1
}
})
module.exports=mongoose.model('User',UserSchema,'user')
文章集合
var mongoose=require('./Conn')
var Schema = mongoose.Schema;
var ArticleSchema=new Schema({
title:{
type:String,
unique:true
},
cid:{
type:Schema.Types.ObjectId,
ref:'ArticleCate'
},
author_id:{
type:Schema.Types.ObjectId,
ref:'User'
},
descripton: String,
content: String
})
module.exports=mongoose.model('Article',ArticleSchema,'article')
文章分类集合
var mongoose=require('./Conn')
var ArticleCateSchema=new mongoose.Schema({
title:{
type:String,
unique:true
}
})
module.exports=mongoose.model('ArticleCate',ArticleCateSchema,'articleCate')
分别在里面添加几条数据,然后进行正向查询和反向查询
正向查询
// 正向查询
router.get('/cate',async function(req,res){
//查询关联的文章分类和用户分类
var d=await article.find().populate('cid').populate('author_id')
res.json({d})
})
查询出来的数据如下(数据是随便填写的)
反向查询
router.get('/fan',async function(req,res){
var cid=mongoose.Types.ObjectId('62317ab2d1883d924482df61')
//id是文章分类里面数据的id
var r=await article.find({'cid':cid})
res.json({r})
})
查询的结果如下