美文网首页
快速上手mongoose操作mongoDb数据库

快速上手mongoose操作mongoDb数据库

作者: litielongxx | 来源:发表于2019-01-29 18:28 被阅读0次

    node的后台开发

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


    image.png

    创建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配合set(修改当前内容),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('删除成功')
            }
        })
    

    相关文章

      网友评论

          本文标题:快速上手mongoose操作mongoDb数据库

          本文链接:https://www.haomeiwen.com/subject/xqxfsqtx.html