node的后台开发
node基于v8内核的让js运行的特性,让后台开发成为了可能。而mongoose让我们可以用的node的语法操作支持的数据库mongodb,从而进行数据库的curd(增删改查)操作。再借助于nosql之类的可视化软件下可以实现可视化操作。注意的是mongoose非关系型数据库,数据存储再类似json的文档而不是常见的关系型的表里面。下边简单列一下常见的基于mongoose的curd操作。

创建mongoose连接(已开启mongodb服务)
//mongoose文档
const mongoose=require('mongoose');
mongoose.connect('mongodb://localhost/test');
let db=mongoose.connection;
db.on('err',()=>{
console.log('连接失败')
})
db.once('open',()=>{
console.log('建立连接')
})
// 设置Schema对象形式
let movieSchema=new mongoose.Schema({
name:String,
id:Number,
des:{
type:String,
default:'xxxxx'
}
})
// 创建model文本
let movieData=mongoose.model('movie',movieSchema);
create新增
create可以创建数据到文档中去,如果多个的可以卸载数组里。
movieData.create([
{
name:'a11111',
id:1,
},
{
name:'b1111',
id:1,
des:'多余的描述'
},
{
name:'cccc',
id:1,
}
],(err)=>{
if(!err) {
console.log('success2')
}
})
find查询
配合skip喝sort可以完成类似翻页效果的查询,而映射注意的是隐藏显示的可以分为{xx:0,xx:1}或者"-Id xx xx"的形式。
//movieData为model文本,需要显示的写在""
movieData.find({name:'aaaa'},"name des",(err,data)=>{
if(!err) {
console.log(data)
}else{
throw err;
}
}).skip(0).limit(3)
//映射需要部分也可以用0隐藏1显示的方式
movieData.find({name:'aaaa'},"-_id name preImg",(err,data)=>{
if(err) throw err;
res.status(200);
res.json(data);
}).skip(1).limit(3)
update修改
update配合inc(增加某部分之类配合{multi:true}效果类似于updateMany。
movieData.update({name:'aaaa'},{$set:{des:'预备删除'}},{multi:true},(err)=>{
if(err) {
throw err
}else{
console.log('更新成功')
}
})
remove/updateOne删除
删除又remove注意的是({})无参数必须至少带上,删除单个可以delteOne。
//删除全部
movieData.remove({name:'这里是符合条件名字'},(err)=>{
if(!err){
console.log('删除成功')
}
})
//删除单个
movieData.deleteOne({name:'这里是符合条件名字'},(err)=>{
if(!err){
console.log('删除成功')
}
})
网友评论