启动Mongodb数据库 (Mac)
sudo mongod
实验前提
- 实验环境 :MacOS;
- 使用工具 :Vscode
所需基础
nodejs包管理基础
mongoose简单语法
即使上面基础缺失,本文任有大量的注释及解释帮助理解。
概要
通过编写实验文件完成使用Mongoose管理工具对MongoDB数据库对建模以及关联
实验开始
安装必要包文件
1.终端新建文件夹 : Mongoose
mkdir Mongoose
2.初始化
npm init
3.安装Mongoose管理工具
npm i mongoose
或:npm install mongooes
新建运行文件 serve.js,使用mongoose对数据库建模
//引入包文件
const mongoose = require('mongoose')
//链接数据库
mongoose.connect("mongodb://localhost:27017/mongo-relation",{ useUnifiedTopology: true,useNewUrlParser: true })
//建立数据库模型
const post = mongoose.model('Post',new mongoose.Schema({
title: {type : String},
body: {type: String,}
}))
//异步操作数据库,并插入数据验证
async function main(){
await post.insertMany([
{title:'this is one title',body:'this is one body'},
{title:'this is two title',body:'this is two body'},
])
const posts = await post.find()
console.log(posts)
}
//执行输出结果
main()
各代码作用详情看注释
关联数据库前建立类型数据库
async function main(){
await Category.insertMany([{
name:'nodejs'
},
{
name:'vuejs'
}])
console.log(await Category.find())
}
main()
关联数据库
const mongoose = require('mongoose')
mongoose.connect("mongodb://localhost:27017/mongo-relation",{ useUnifiedTopology: true,useNewUrlParser: true })
const Category = mongoose.model('Category', new mongoose.Schema({
name: {type:String}
}))
const Post = mongoose.model('Post',new mongoose.Schema({
title: {type : String},
body: {type: String},
category: {type: mongoose.SchemaTypes.ObjectId, ref:'Category'}
}))
async function main(){
await Category.insertMany([{
name:'nodejs'
},
{
name:'vuejs'
}])
const cat1 = await Category.findOne({name:'nodejs'})
const post1 = await Post.findOne({title:'this is one title'})
const post2 = await Post.findOne({title:'this is two title'})
post1.category = cat1
post2.category = cat1
await post1.save()
await post2.save()
const posts = await Post.find()
console.log(posts)
}
main()
输出结果
关键点总结
- 操作数据库需要使用异步
- 需要对数据库进行 保存
本文其中例子来自网络教程,并进行归纳总结,笔者才学疏浅,若有错误之处欢迎指出