1、下载mongoose
cnpm i mongoose --save
2、引入mongoose并连接数据库
const mongoose = require('mongoose')//引入
//连接 默认端口号 27017 可不写
mongoose.connect('mongodb://localhost/test',{useNewUrlParser:true})
//监听连接成功
mongoose.connection.once('open',()=>{
console.log('连接成功');
})
//监听断开连接
// mongoose.connection.once('close',()=>{
// console.log('数据库连接已断开');
// })
// //断开连接
// mongoose.disconnect()
2.1 插入数据
const { Schema } = mongoose;
var stuSchema = new Schema({
name:String,
age:Number,
gender:{
type:String,
default:'female'
},
address:String
})
//通过Schema 创建 model
var StuModel = mongoose.model('student',stuSchema);
//向数据库中插入一个文档
StuModel.create({
name:"张三丰",
age:20,
gender:'man',
address:"武当山"
},(err)=>{
if(!err){
console.log('插入成功');
}
})
StuModel.create([{
name:"郭襄",
age:18,
address:"峨眉山"
},
{
name:"张无忌",
age:6,
gender:'man',
address:"光明顶"
}
],(err)=>{
if(!err){
console.log('插入成功');
}
})
2.2 查// StuModel.find(conditions,[projection],[options],cb)
// StuModel.find(conditions,[projection],[options],cb)
// conditions 查询条件 projection 投影(显示的字段) options 查询选项 cb 回调
//StuModel.findOne()
//StuModel.findById()
// StuModel.find({name:"张无忌"},(err,docs)=>{
// console.log(docs)
// })
//显示name 不显示_id
// StuModel.find({name:"张无忌"},{name:1,_id:0},(err,docs)=>{
// console.log(docs)
// })
//显示 name age 不显示_id
StuModel.find({name:"张无忌"},"name age -_id",(err,docs)=>{
console.log(docs)
})
StuModel.find({name:"张无忌"},"name age -_id",{skip:3,limit:1},(err,docs)=>{
console.log(docs)
})
//查找符合条件的一个
StuModel.findOne({name:"张无忌"},(err,doc)=>{})
2.3 修改数据
// StuModel.update(conditions,doc,[options],[cb])
//conditions 查询条件 doc 修改后的文档 options 查询选项 cb 回调
// StuModel.updateOne()
// StuModel.updateMany()
// StuModel.replaceOne()
StuModel.updateOne({name:"张三丰"},{$set:{age:20}},(err)=>{
if(!err){
console.log('更新成功');
}
})
2.4 删除数据
// StuModel.remove(conditions,[cb])
// StuModel.deleteOne()
// StuModel.deleteMany()
StuModel.remove({name:"郭襄"},(err)=>{
if(!err){
console.log('删除成功')
}
})
2.5 其他方法
//查询数据条数
StuModel.count({},(err,num)=>{
console.log(num);
})
2.6 doc的方法
StuModel.findOne({},(err,doc)=>{
//更新
doc.update({$set:{age:28}},err=>{
})
//另一种 方式
// doc.age = 100;
// doc.save();
doc.get('name')
console.log( doc.get('name'));
doc.set('name','张三丰先生')
doc.save()
})